1
0
mirror of https://github.com/laurent22/joplin.git synced 2026-04-21 19:45:16 +02:00

Compare commits

..

1485 Commits

Author SHA1 Message Date
Laurent Cozic c3854ec350 ios-v10.6.1 2021-01-02 14:54:31 +00:00
Laurent Cozic c2c737541d ios release script 2021-01-02 14:53:30 +00:00
Laurent Cozic 5b295d5f6f Plugins: Add support for hiding and showing panels 2021-01-02 13:32:15 +00:00
Helmut K. C. Tessarek 0be8cdf760 Update translations 2021-01-01 21:00:35 -05:00
Po-chiang Chao 545940f545 All: Translation: Update zh_TW.po (#4278)
Include new strings and fuzzy translated strings
2021-01-01 19:18:52 -05:00
Laurent Cozic d58f39823a Doc: Added link to new specs, and added more details to delta sync spec 2021-01-01 13:25:05 +00:00
Laurent Cozic f9fb1b8a81 Merge branch 'dev' of github.com:laurent22/joplin into dev 2021-01-01 13:04:30 +00:00
Laurent Cozic 56ded0062a All: Add more log info when a revision cannot be deleted due to still-encrypted itel 2021-01-01 13:04:15 +00:00
Laurent Cozic 83b29d7c51 macOS: Fixed paste as text in Rich Text editor 2021-01-01 12:38:17 +00:00
Arda Kılıçdağı 1ec0746263 All: Translation: Update tr_TR.po (#4274)
Hello,

You can find the updated Turkish translations in this pull request.

Also, happy new year! 🎉
2020-12-31 12:08:09 -05:00
Laurent Cozic 568d11bddf Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-31 16:04:06 +00:00
Laurent Cozic 97b25ac99d Doc: Add spec for Joplin Server delta sync 2020-12-31 15:58:38 +00:00
Laurent Cozic 7f1d3d8a5d Doc: Added spec for server URL formats 2020-12-31 12:38:22 +00:00
Elaborendum fde201fbe9 All: Translation: Update es_ES.po (#4260)
* Updated es_ES.po

* Reverting some changes

* Redid translation using current .po file
2020-12-31 00:59:25 -05:00
Laurent Cozic 694a1b4ede Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-30 23:53:20 +00:00
Laurent Cozic 20d126b39d Server: Fixed access control on user list and clean up 2020-12-30 23:50:44 +00:00
Helmut K. C. Tessarek 8ca9c3092a Clipper release v1.6.1 2020-12-30 14:50:47 -05:00
Laurent Cozic d2771029a3 Server: Support for notifications and clean up 2020-12-30 18:35:18 +00:00
Laurent Cozic 4128c53fcf Update French translation 2020-12-30 13:07:41 +00:00
Laurent Cozic a14410b28c Android release v1.6.4 2020-12-30 12:04:25 +00:00
Laurent Cozic d1f8520e6e Mobile: Fixed package import issue 2020-12-30 11:51:43 +00:00
Laurent Cozic d76746b8e4 Android release v1.6.3 2020-12-30 11:05:04 +00:00
Laurent Cozic 89d173b460 Mobile: Add support for Joplin Server 2020-12-30 10:54:00 +00:00
Laurent Cozic 81aba8b8b0 Server: Fixed pagination 2020-12-30 02:24:29 +00:00
Laurent Cozic f48697572d Server: Fixed file count issue for PostgreSQL 2020-12-29 23:48:34 +00:00
Laurent Cozic e61e8b7b94 Server: Fixed URLs 2020-12-29 23:22:57 +00:00
Laurent Cozic 1deab7e8d1 Android release v1.6.2 2020-12-29 19:42:30 +00:00
Laurent Cozic 86b28b5ecf Desktop release v1.6.1 2020-12-29 18:30:38 +00:00
Laurent Cozic 938e723434 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-29 18:07:02 +00:00
Laurent Cozic ee2ec28cd4 Server: Add basic file manager 2020-12-29 18:04:57 +00:00
Helmut K. C. Tessarek 9dc505e85b fix typo in source and all translations 2020-12-29 12:10:52 -05:00
Helmut K. C. Tessarek 3df31584af update en_US.po 2020-12-29 11:50:31 -05:00
Zhang YANG a7e3b381cb All: Translation: Update zh_CN.po (#4263) 2020-12-29 11:23:33 -05:00
Laurent Cozic 70381a233b Merge branch 'release-1.5' into dev 2020-12-29 16:17:18 +00:00
Laurent Cozic 2966fe0df2 Desktop release v1.5.13 2020-12-29 16:14:27 +00:00
Laurent Cozic 143f0b4bc5 Desktop, Cli: Improve support for SVG images when importing ENEX files 2020-12-29 15:58:20 +00:00
Helmut K. C. Tessarek 24ec3b8897 Update translations (for new server code) 2020-12-28 15:17:17 -05:00
Beowulf2 01aa4f9d5e All: Translation: Update de_DE.po (#4258) 2020-12-28 14:39:58 -05:00
Manuel Tassi 520efdcb39 All: Translation: Update it_IT.po (#4256)
* Update it_IT.po

* Update it_IT.po

* Update it_IT.po
2020-12-28 14:39:38 -05:00
Laurent Cozic 34a99f738c linter 2020-12-28 17:26:15 +00:00
Laurent Cozic 0e0de1207f Server: Adding basic file manager 2020-12-28 16:37:12 +00:00
Laurent Cozic 2fda067034 Server: Improved logging and error handling 2020-12-28 15:15:30 +00:00
Laurent Cozic 29177330b0 Merge branch 'release-1.5' into dev 2020-12-28 14:31:37 +00:00
Laurent Cozic 66a5490b54 Desktop release v1.5.12 2020-12-28 14:29:37 +00:00
Laurent Cozic 469cd19ec1 Desktop: Fix issue when importing ENEX file that contains invalid list elements 2020-12-28 14:29:02 +00:00
Laurent 41684a64ef Server: Add Joplin Server package (#1872) 2020-12-28 11:48:47 +00:00
Laurent Cozic 2cd7839552 Increase version num to 1.6 2020-12-27 22:46:27 +00:00
Laurent Cozic c3d4617612 Update website 2020-12-27 22:41:47 +00:00
Laurent Cozic 158fafc4a0 Merge branch 'release-1.5' into dev 2020-12-27 22:40:26 +00:00
Laurent Cozic 0f59731c06 Plugin Generator release v1.5.3 2020-12-27 22:28:16 +00:00
Laurent Cozic d0f1a67d96 Plugins: Updated types 2020-12-27 22:26:17 +00:00
Laurent Cozic 2a1434f987 Generator: Fixed publish logic 2020-12-27 22:25:17 +00:00
Laurent Cozic 1ee177880d Plugin Generator release v1.5.2 2020-12-27 22:23:18 +00:00
Laurent Cozic f6d899eb29 Generator: Fixed publish script 2020-12-27 22:22:29 +00:00
Laurent Cozic a97f25fd61 Update website 2020-12-27 19:55:34 +00:00
Laurent Cozic 325a5ab08f ios-v10.5.1 2020-12-27 19:47:44 +00:00
Laurent Cozic c158878b66 Desktop release v1.5.11 2020-12-27 19:19:13 +00:00
Laurent Cozic 0f0f9c1161 macOS: Update app icon 2020-12-26 13:49:00 +00:00
Laurent Cozic 79612163b2 Android release v1.5.1 2020-12-26 00:57:31 +00:00
Laurent Cozic fab5ed165c CLI v1.5.1 2020-12-26 00:48:02 +00:00
Laurent Cozic 4897c763bd Releasing sub-packages 2020-12-26 00:45:11 +00:00
Laurent Cozic 17b9867bf2 Desktop release v1.5.10 2020-12-26 00:17:15 +00:00
Laurent Cozic b8f14d50f5 Desktop, Cli: Add table captions when importing ENEX files 2020-12-25 17:44:51 +00:00
Laurent Cozic 9e2f60523f Desktop, Cli: Fixed issues when importing hidden tables within hidden sections in Enex files 2020-12-25 16:37:05 +00:00
Laurent Cozic 321ff4fced Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-12-24 12:25:19 +00:00
Laurent Cozic 2a31f914bb Desktop: Update macOS icon for macOS Big Sur 2020-12-24 12:24:40 +00:00
Manuel Tassi 0b71c33d09 All: Translation: Update it_IT.po (#4247) 2020-12-23 21:39:26 -05:00
Laurent Cozic 502c812d9c Chore: remove debug code 2020-12-23 23:46:36 +00:00
Laurent Cozic 5dc3baa50c Desktop: Removed warning for Markdown editor spell checking 2020-12-23 23:19:35 +00:00
Laurent Cozic a9af58146b Desktop: Fixes #4201: Fixed context menu when the UI is zoomed in or out 2020-12-23 23:17:12 +00:00
Laurent Cozic 17edebb6b1 Desktop: Fixes #4243: Prevent double paste when using Shift+Ctrl+V 2020-12-23 20:03:38 +00:00
Laurent Cozic bb2855bd80 Desktop, Mobile: Display Katex parsing errors 2020-12-23 19:46:21 +00:00
Laurent Cozic 6cae8a7d20 Desktop release v1.5.9 2020-12-23 17:26:45 +00:00
Caleb John 849cd9a2a2 Linux: Remove the appimage version from installer script (#4245) 2020-12-23 17:26:22 +00:00
Laurent Cozic 5826a8d373 Desktop, Cli: Improved error handling when importing ENEX files 2020-12-23 17:25:26 +00:00
Caleb John 18c5404cbc Dedktop: Fix typo when passing generic editor commands to the editor (#4240) 2020-12-21 10:32:42 +00:00
Laurent Cozic f16fd6462b Desktop release v1.5.8 2020-12-20 07:59:01 +00:00
Laurent Cozic 67c2998b9d Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-20 07:58:25 +00:00
Laurent Cozic db4f6e9ce5 Chore: Fixed mobile build 2020-12-20 07:52:28 +00:00
Caleb John 0a2364f917 Desktop: Fix End key behavior with Codemirror spellcheck (#4215)
* Manually fudge the codemirror cursor handling when in contenteditable mode
2020-12-19 18:04:02 -07:00
Laurent Cozic 1aebcbb27c Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-19 22:17:48 +00:00
Jonathan Plasse 5bf1dc906d Doc: Add FAQ entry about passing arguments to the installation script (#4209) 2020-12-19 17:59:40 +00:00
Caleb John 2529da5b09 Desktop: Fixes #4130: Register Markdown editor commands with the Keyboard Shortcut editor (#4136) 2020-12-19 17:57:41 +00:00
Laurent Cozic d1a7d31335 Desktop: Use plugins whenever printing or exporting notes
Ref: https://discourse.joplinapp.org/t/external-css-per-note-is-being-ignored/13016/6
2020-12-19 17:42:18 +00:00
Laurent Cozic b8493baa5e Desktop, Cli: Fixed import of ENEX files that contain invisible sections
Ref: https://discourse.joplinapp.org/t/code-block-imports-from-evernote/13113/4
2020-12-19 16:18:07 +00:00
Laurent Cozic f53a7d3a8a Desktop, Cli: Fixed importing certain code blocks from ENEX
Ref: https://discourse.joplinapp.org/t/13113
2020-12-19 15:37:42 +00:00
Laurent Cozic 33c5037816 Desktop, Cli: Fixed importing ENEX files that contain resources with invalid mime type 2020-12-18 23:56:38 +00:00
Laurent Cozic 38b0702314 Android: Disable long press on images as it interferes with zoom in and out 2020-12-18 13:37:36 +00:00
Laurent Cozic 693f59d07a Tools: Fixed OneDrive test units 2020-12-16 11:19:35 +00:00
Laurent Cozic 59e2e65de0 Tools: Fixed auth for OneDrive test units 2020-12-16 01:00:53 +00:00
Laurent Cozic 4180d4bd28 Tools: Allow publishing all lib packages to @joplin 2020-12-14 14:55:31 +00:00
Helmut K. C. Tessarek 46d22d8847 Documentation: fix version number in nextcloud_app.md 2020-12-13 20:48:25 -05:00
Laurent fbbfa2833b Doc: Mentioned that Joplin API for Nextcloud is deprecated 2020-12-13 19:59:26 +00:00
Laurent Cozic e351564bec Fixed tests 2020-12-11 16:03:55 +00:00
Laurent Cozic 9f8e6a3060 Plugins: Add support for context menu items on notebooks and tags 2020-12-11 13:28:59 +00:00
Laurent Cozic a1c08adb3e Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-11 12:42:58 +00:00
Laurent Cozic 5cd9114334 Chore: access modifiers on classes 2020-12-11 12:29:21 +00:00
Laurent Cozic 65cc6853bd Plugins: Added a way to execute commands from Markdown-it content scripts 2020-12-11 12:00:24 +00:00
Danil Tolkachev dca51cc7de All: Translation: Update ru_RU.po (#4212) 2020-12-10 14:28:30 -05:00
Laurent Cozic bc76e4a918 Plugins: Fixed disabling plugin files that start with "_" 2020-12-10 16:45:00 +00:00
Laurent Cozic 3ed0083e94 Plugins: Add support for content script asset files, for Markdown-it plugins 2020-12-10 16:09:31 +00:00
Laurent Cozic 5cafc8cea5 Chore: Fixed a few links that were broken after Lerna upgrade 2020-12-10 15:13:29 +00:00
Laurent Cozic ff5e8ee7aa Chore: Fixed a few links that were broken after Lerna upgrade 2020-12-10 15:04:54 +00:00
Laurent Cozic f1bbcea64b Desktop release v1.5.7 2020-12-10 10:07:40 +00:00
Laurent Cozic 8e874891c0 Tools: Fixed desktop dist script 2020-12-10 10:07:29 +00:00
Laurent Cozic 546ee354dd Desktop release v1.5.6 2020-12-09 22:33:43 +00:00
Laurent Cozic afebce145f Doc: Fixed formatting 2020-12-09 22:04:10 +00:00
Laurent Cozic d202b6b5a9 Update website 2020-12-09 22:01:02 +00:00
Laurent Cozic 7543d43428 Desktop release v1.5.5 2020-12-09 21:53:43 +00:00
Laurent 5737560e19 Desktop, Mobile: Restrict auto-detection of links, and added option to toggle linkify (#4205) 2020-12-09 21:52:52 +00:00
Helmut K. C. Tessarek a278c2c32a Desktop, Mobile: Update Mermaid: 8.8.1 -> 8.8.4 (#4193)
```
Release Notes 8.8.4

    Re-align gantt chart dateFormat table with spaces (#1764) @AloisMahdal
    Docs/update edit this page (#1774) @sy-records
    Fixed typo in the docs (#1780) @manicki
    Move babel-eslint to devDependencies (#1772) @glensc
    Add Doscy to list of integrations (#1784) @gwatts
    Changed regex for multi-line state notes (#1773) @tomatoman25
    Add different id generators (#1787) @julianbei
    Bump highlight.js from 9.18.1 to 9.18.5 (#1789) @dependabot
    Fixed markdown error in Relationship Syntax (#1796) @kciter
    remove classDiagram duplicate options (#1786) @JiChao99
    Update copyright years (#1805) @BastianZim

🐛 Bug Fixes

    Add sans-serif to default font settings (#1776) @GDFaber
    ignore build files in dist folder (#1777) @GDFaber
    Narrow down console logging when flowchart subgraphs are added (#1782) @GDFaber
    Apply style settings to subgraphs in "flowchart" diagrams (#1781) @GDFaber

Release Notes 8.8.3

    Fix styling of links for new beta flowchart (#1730) @knsv
    Fix typo in pie.md (#1705) @hwine
    Fixing broken links and misspellings (#1727) @deining
    Fixed empty code examples (#1729) @Eraledm
    README: use stateDiagram-v2 (#1728) @alexislefebvre
    #1724 Adding fontawesome to edge labels (#1731) @knsv
    Fix broken links in gantt.md (#1703) @wontonst
    Replace fregante/setup-git-token with setup-git-user (#1735) @fregante
    Updated docs (#1739) @BastianZim
    1740 nested subgraps directions (#1741) @knsv
    Switching to Docsify and adding search (#1746) @NeilCuzon
    Fixed bad tertiary operator (#1743) @lishid
    fix broken links in README (#1749) @levlas

Release Notes 8.8.2

    1704 Revert to original behavior of nodes and subgraphs (#1709) @knsv

    There is some ambiguity about what subgraph a node belongs to when it appears in several subgraphs. Should it stick to the first subgraph it appears in, or should the last subgraph it gets added to be the one it belongs to. With this change the original behavior is retained.
```
2020-12-09 21:44:38 +00:00
Laurent Cozic 13dbeb4b36 Desktop: Add support for media players (video, audio and PDF) 2020-12-09 21:30:51 +00:00
Gen Neko a3f8b9027c All: Translation: Update ja_JP.po (#4206) 2020-12-09 11:36:07 -05:00
Laurent Cozic f436967779 Chore: Fixed dev dependencies 2020-12-09 16:15:13 +00:00
Laurent Cozic f37224fc42 Desktop: Added doc about Rich Text editor and added way to dismiss warning banner 2020-12-09 15:58:15 +00:00
Laurent Cozic a737a21185 Tools: Fixed another race condition in test units 2020-12-09 15:06:22 +00:00
Laurent Cozic 234c05a966 Desktop: Rich Text: Do not converts to markdown links URLs that would be linkified 2020-12-09 14:58:38 +00:00
Roman Musin 92b4795410 All: Fixed #4025: Fixed issue when searching for text that contains diacritic (#4152) 2020-12-09 13:02:54 +00:00
Laurent Cozic 3e21e9a334 Tests: Increased 'slow threshold' to 20 seconds, because we use Jest for integration testing too 2020-12-09 12:57:25 +00:00
Laurent Cozic dc3e9178ef Desktop: Fixed issue with attachment paths being invalid when user has spaces in home directory path. Also fixed race condition in test units that could make them randomly fail. 2020-12-09 12:53:47 +00:00
Laurent Cozic 46ed1304f2 Desktop: Improved warning banner colors 2020-12-08 23:44:54 +00:00
Laurent Cozic 01cf0de974 Desktop: Fixed title input field width on small windows 2020-12-08 23:27:11 +00:00
Laurent Cozic abf5d16da9 Doc: Fixed master key encryption method link 2020-12-08 22:02:17 +00:00
Laurent Cozic f21199a7f3 Chore: Convert test-utils to TypeScript 2020-12-08 20:01:33 +00:00
Laurent Cozic cdf2873883 Plugins: Commands would not show up in keymap editor when no shortcut was associated with them
Ref: https://discourse.joplinapp.org/t/plugin-note-tabs/12752/39
2020-12-08 19:45:08 +00:00
Laurent Cozic 0390928fea Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-12-08 19:04:03 +00:00
Laurent Cozic efb3546675 Plugins: Add support for workspace.onSyncStart event 2020-12-08 19:03:22 +00:00
Ji-Hyeon Gim 169841dcc4 All: Translation: Update ko.po (#4200)
It updates fuzzy translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-12-07 11:49:22 -05:00
Helmut K. C. Tessarek b780261153 Chore: moving the keycode map to a separate file (#4192)
/ref https://github.com/laurent22/joplin/pull/4022#issuecomment-726263640
2020-12-06 15:01:30 +00:00
Zhang YANG c906354510 All: Translation: Update zh_CN (#4195) 2020-12-05 20:44:02 -05:00
Helmut K. C. Tessarek 6487fde09d update: en_US.po 2020-12-05 19:33:58 -05:00
Helmut K. C. Tessarek 50f046ffc4 Update translations 2020-12-05 16:36:47 -05:00
Helmut K. C. Tessarek ded14ff8db move fi_FI.po to the correct path 2020-12-05 16:34:37 -05:00
Laurent Cozic 64bbd93f54 Tools: Skip electronRebuild in postinstall to make boostrap faster, but add it to dist script 2020-12-05 12:40:14 +00:00
Laurent Cozic 9a30b69610 Doc: Added comment about stapling macOS app 2020-12-05 12:18:31 +00:00
Laurent Cozic 046433a947 Tools: Fixed issue with gettext not knowing how to parse regex that includes backtick 2020-12-05 11:54:58 +00:00
Laurent Cozic 42232fac84 Desktop release v1.5.4 2020-12-05 11:06:54 +00:00
Laurent Cozic 245976f659 Chore: trying to fix notarization 2020-12-05 11:06:20 +00:00
Laurent Cozic 8d90cc234f Clipper: Fixes #4105: Handle certain types of code block 2020-12-02 15:43:44 +00:00
Manuel Tassi 5183767e43 Update it_IT.po (#4169) 2020-12-02 10:47:42 +00:00
Alexander Fischer ceb625dbeb updated german translations (#4168) 2020-12-02 10:47:11 +00:00
mrkaato 7677d9cd7d Add Finnish translation (#4156) 2020-12-02 10:44:36 +00:00
Caleb John 92fe5e2362 Desktop: Fixes #4036: Focus editor after pressing toolbar buttons (#4037) 2020-12-02 10:36:00 +00:00
Laurent Cozic 717b8da1f8 Tools: Cleaned up tests and splitted sync tests into smaller parts 2020-12-01 18:05:24 +00:00
Laurent Cozic fa50a8f5da Tools: Publish desktop files only on release tag. Also added debug info. 2020-12-01 15:35:28 +00:00
Laurent Cozic 05e9000087 Plugins: Improved note change event handling. Also added tests and improved debugging plugins. 2020-12-01 14:08:41 +00:00
Laurent Cozic eed3dc8617 Merge branch 'release-1.4' into dev 2020-12-01 11:29:07 +00:00
Laurent Cozic de123ee586 Desktop release v1.4.19 2020-12-01 10:14:45 +00:00
Laurent Cozic 89abc4395f All: Disable soft-break by default in Markdown rendering
Although soft-break is part of the CommonMark spec, it requires a
special editor that can wrap text at a certain limit. That doesn't make
much sense in Joplin, where the editor can have various sizes, from
desktop to mobile, and where the tools to wrap text are not present.
2020-12-01 09:49:59 +00:00
Laurent Cozic 4b0d230815 Doc: Update installation info 2020-12-01 09:47:18 +00:00
Laurent Cozic 48e3811fbd Desktop, Cli: Fixed importing ENEX files that contain empty resources 2020-11-30 19:29:44 +00:00
Laurent Cozic e8d216016e Chore: Make debugging log less verbose for link replacement code 2020-11-30 18:37:58 +00:00
Laurent Cozic 751d0e0745 Plugin Generator: Fixed issue with the same files being added multiple time to JPL archive 2020-11-30 18:32:39 +00:00
Laurent Cozic d0f22140fd Desktop: Fixed issue with note not being saved when a column is added or remove from Rich Text editor 2020-11-30 18:20:27 +00:00
Laurent Cozic d63378b4e3 Doc: Updated sponsors 2020-11-30 14:06:06 +00:00
Laurent Cozic a17b77b495 Update website 2020-11-30 12:06:32 +00:00
Laurent Cozic 04814eefb5 Desktop release v1.5.3 2020-11-29 19:38:40 +00:00
Laurent Cozic da3e5acc94 Fix XCode version for notarization 2020-11-29 19:38:19 +00:00
Laurent Cozic ef53c42f0a Desktop release v1.5.2 2020-11-29 18:46:04 +00:00
Laurent Cozic c8b40bfdb2 Chore: Getting notarization to work 2020-11-29 18:45:37 +00:00
Laurent Cozic dbb8b4d895 Tools: Fixed changelog script 2020-11-29 17:47:41 +00:00
Laurent Cozic a654419881 Desktop release v1.5.1 2020-11-29 17:36:24 +00:00
Laurent Cozic 497cf996e8 Setup new version to 1.5 2020-11-29 17:35:41 +00:00
Roman Musin d5dbc421b1 Android: Fixes #4122: Try to fix external storage access on Android 10 (#4134) 2020-11-29 17:30:51 +00:00
Jan Blunck f965708ad3 Mobile: Fixes #3601: Fix uploading resource files to S3 with RN (#4127)
When the mobile application tries to synchronize a note with attached
resource files, e.g. from the notebook "Welcome! (Mobile)", readFile()
is called to return a Buffer although that isn't implemented in
FsDriverRN.readFile(). This is changing the code to return base64
encoded content from react-native and turn it into a Buffer before the S3
putObject() API call is used to create the remote object.

Tested with AVD Android 10.0 target.

Signed-off-by: Jan Blunck <jblunck@users.noreply.github.com>
2020-11-29 17:29:46 +00:00
Laurent Cozic f001d197a8 macOS: Notarize application 2020-11-29 17:15:42 +00:00
Laurent Cozic d588bddfaa Revert "Tools: Adding debug info to tests"
This reverts commit 154b3573a4.
2020-11-29 16:47:07 +00:00
Laurent Cozic b780a62588 Tools: Fixed test units on CI 2020-11-29 16:23:14 +00:00
Laurent Cozic 154b3573a4 Tools: Adding debug info to tests 2020-11-29 13:13:53 +00:00
Laurent Cozic 7d2551c9c3 Tools: Run all tests in parallel 2020-11-29 11:29:43 +00:00
Laurent Cozic 7644d05225 Tools: Trying to get tests to build in dev branch 2020-11-29 01:20:49 +00:00
Laurent Cozic 1851b0e7d1 Merge branch 'release-1.4' into dev 2020-11-29 00:22:17 +00:00
Laurent Cozic 76c4d99b87 Desktop release v1.4.18 2020-11-28 12:03:29 +00:00
Laurent Cozic 849ef418a6 Desktop: Fixed notifications on macOS 2020-11-28 12:03:06 +00:00
Laurent Cozic d733c0e010 Desktop release v1.4.16 2020-11-27 18:19:31 +00:00
Laurent Cozic a48e5cd4e8 Desktop: Fixed spell checker crash when no language is selected 2020-11-27 18:15:22 +00:00
Laurent Cozic 03942a0073 All: Fix sorting by title in a case insensitive way 2020-11-27 15:16:50 +00:00
Laurent Cozic 0bc53dc063 Merge branch 'release-1.4' into dev 2020-11-27 12:43:40 +00:00
Laurent Cozic 56605beea2 Desktop release v1.4.15 2020-11-27 12:41:24 +00:00
Laurent Cozic 8059d3fbd1 Desktop release v1.4.14 2020-11-27 12:41:12 +00:00
Laurent Cozic 46c38ce0e0 Desktop: Remove support for buggy asar packing as it breaks notifications on macOS. Also make sure only DMG is built for macOS. 2020-11-27 12:40:43 +00:00
Laurent Cozic dfa928c1f7 Log info 2020-11-27 12:21:59 +00:00
Laurent Cozic cb696276da Desktop: Fixes #4146: Prevents crash when invalid spell checker language is selected, and provide fallback for invalid language codes 2020-11-27 12:21:34 +00:00
Laurent Cozic 5f80628a4d Desktop: Fixed potential crash when watching note files or resources 2020-11-27 12:19:57 +00:00
Laurent Cozic b77f868fc8 Log info 2020-11-27 12:03:32 +00:00
Laurent Cozic 6ad9931e43 Desktop: Fixes #4146: Prevents crash when invalid spell checker language is selected, and provide fallback for invalid language codes 2020-11-27 11:12:28 +00:00
Laurent Cozic 011a65f73b Desktop: Fixed potential crash when watching note files or resources 2020-11-27 11:08:42 +00:00
Laurent Cozic 72ccc90ea0 Merge branch 'release-1.4' into dev 2020-11-27 01:16:52 +00:00
Laurent Cozic f3e6c0da32 Desktop release v1.4.13 2020-11-26 23:32:30 +00:00
Laurent Cozic 9308c3f38c Plugins: Fixed webview postMessage call 2020-11-26 23:31:31 +00:00
Laurent Cozic c8a7c70838 ios-v10.4.1 2020-11-26 22:17:55 +00:00
Laurent Cozic 40f6dcfb4c Android release 1.4 2020-11-26 19:42:05 +00:00
Laurent Cozic 09785cf366 Tools: Ignored files 2020-11-26 18:15:20 +00:00
Laurent Cozic 7279b508db Tools: Fixed ignore file script 2020-11-26 18:14:49 +00:00
Laurent Cozic d7996c9707 Merge branch 'release-1.4' into dev 2020-11-26 15:10:18 +00:00
Laurent Cozic f0432e724a Fix CLI release 2020-11-26 15:09:51 +00:00
Laurent Cozic 2f9bb7b8c0 Doc: Typo 2020-11-26 14:42:50 +00:00
Laurent Cozic f4b8b5b160 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-26 14:42:21 +00:00
Zhang YANG e2962322be Update zh_CN translations (#4121)
* Update zh_CN.po

* Update zh_CN translations
2020-11-26 14:41:11 +00:00
Mustafa Al-Dailemi c982e42999 Update da_DK.po (#4117)
Co-authored-by: Mustafa Al-Dailemi <Mustafa-ALD@users.noreply.github.com>
2020-11-26 14:40:30 +00:00
Laurent Cozic eed52a5cfd Tools: Fixed tests on CI 2020-11-26 14:40:16 +00:00
MichBoi 6272a2eb4f Desktop: Fixes #3917: Fixed numbered list bug in markdown editor (#4116) 2020-11-26 14:34:13 +00:00
Naveen M V 69a4a895d4 All: Fixed basic search when executing a query in Chinese (#4034) 2020-11-26 12:35:04 +00:00
Laurent Cozic 511e4b1da0 Merge branch 'release-1.4' into dev 2020-11-26 12:16:52 +00:00
Laurent Cozic f22e6f7204 CLI v1.4.7 2020-11-26 12:16:29 +00:00
Laurent Cozic 3d4437037e Tools: trim 2020-11-26 12:15:02 +00:00
Laurent Cozic d8745597e9 Tools: trim 2020-11-26 12:13:26 +00:00
Laurent Cozic b279a9693c Tools: Fixed git-changelog error with empty tag 2020-11-26 12:10:56 +00:00
Laurent Cozic 7fa483d27c Doc: Organise community links 2020-11-25 14:50:27 +00:00
Laurent Cozic 9b64c1fbdb Added no-floating-promises eslint rule 2020-11-25 14:40:25 +00:00
Laurent Cozic a37f84e988 Clipper: Certain tags could be missing from the dropdownlist 2020-11-25 10:27:41 +00:00
Laurent Cozic 96ac3e53e8 Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-25 09:41:34 +00:00
Laurent Cozic 416a7b36e7 Fix logger type 2020-11-25 09:40:54 +00:00
Laurent Cozic be4d53db62 Doc: Update Donate page 2020-11-23 17:50:48 +00:00
Laurent Cozic 7154ebbf5c Plugins: Updated types 2020-11-23 17:06:52 +00:00
Laurent Cozic 4d65bfe3f8 Fixed type 2020-11-23 17:05:12 +00:00
Laurent Cozic 0f0c50a178 Desktop release v1.4.12 2020-11-23 16:57:58 +00:00
Laurent Cozic 9a2fd97f3c Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-23 16:56:09 +00:00
Laurent Cozic 3f2fe79151 All: Partially reverts #3975 (link rendering)
- Reverts the linkify behaviour - URLs will be auto-detected again
- Keeps the new soft-break behaviour

There are still unsolved issues with regard to the linkify option so it
needs further considerations before we change the behaviour.

https://discourse.joplinapp.org/t/12620/18?u=laurent
2020-11-23 16:52:17 +00:00
Laurent Cozic 1ef380d995 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-23 16:40:50 +00:00
Laurent Cozic c213d5056c Desktop: Fixed resource watching on Windows 2020-11-23 16:38:29 +00:00
Laurent Cozic 62c67cb09f All: Fixed Markdown rendering when code highlighting is disabled 2020-11-23 16:26:34 +00:00
Laurent Cozic 1dd6c7dde5 All: Fix handling of new line escaping when using external edit 2020-11-23 16:25:57 +00:00
Laurent Cozic 86bace70a5 Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-23 11:52:36 +00:00
Laurent Cozic ee912b24c7 Plugins: Fixed issue with toolbar button key not being unique 2020-11-23 11:52:20 +00:00
Laurent Cozic 3e65e1539b Desktop, Cli: Fixed importing certain ENEX files that contain invalid dates 2020-11-23 11:23:56 +00:00
Laurent Cozic 4ac2409318 Plugins: Provides selected notes when triggering a command from the note list context menu 2020-11-21 12:35:19 +00:00
Laurent Cozic d953f6bcab Desktop, Mobile: Fixes #4119: Fixed links imported from ENEX as HTML 2020-11-20 16:04:47 +00:00
Laurent Cozic e0c2b62a6c Tools: Fixed tests when running them from root 2020-11-20 14:04:02 +00:00
Laurent Cozic 544d879c0b Plugins: Use plugin ID as filename 2020-11-19 23:46:04 +00:00
Laurent Cozic 28f75449d7 Desktop release v1.4.11 2020-11-19 21:02:03 +00:00
Laurent Cozic fdc84aa6bb Desktop: Upgrade to Electron 10 2020-11-19 21:01:19 +00:00
Laurent Cozic 592b9d95c6 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-19 18:35:56 +00:00
Laurent Cozic 4abdab5cdb Tools: Fixed tests 2020-11-19 18:34:53 +00:00
Caleb John 858508bfa9 Desktop: Add option to toggle spellchecking for the markdown editor (#4109) 2020-11-19 17:14:44 +00:00
Caleb John 116413e78d Desktop: Prevent lines from shifting in Markdown Editor when Scrollbar appears (#4110) 2020-11-19 17:04:18 +00:00
Anshuman Pandey 031a26116c Desktop: Resolves #4096: Disabled the auto update option in linux (#4102) 2020-11-19 17:00:22 +00:00
Laurent Cozic 65962e26ce Desktop: Fixes #4098: Fix crash due to React when trying to upgrade sync target 2020-11-19 16:38:44 +00:00
Laurent Cozic 30913a5d58 API: Always include 'has_more' field for paginated data 2020-11-19 16:25:32 +00:00
Laurent Cozic 61618fb37c All: Refresh sidebar and notes when moving note outside of conflict folder 2020-11-19 16:21:24 +00:00
Laurent Cozic a40ab434ca Generator: Merge package.json when updating plugin framework 2020-11-19 15:57:47 +00:00
Laurent Cozic dbbd930f81 All: Added global logger
Avoids having to pass around a logger to every module and sub-module,
and makes it easier to set log level globally.
2020-11-19 15:25:02 +00:00
Laurent Cozic ff3ae3860e Doc Mentioned gettext version 2020-11-19 13:03:40 +00:00
Laurent Cozic e1c4d1a417 Doc: Fix link 2020-11-19 13:02:03 +00:00
Laurent Cozic e1180a1d84 Tools: Remove Jasmine dependency 2020-11-19 12:44:20 +00:00
Laurent Cozic e57444dc32 Desktop: Add config screen to add, remove or enable, disable plugins 2020-11-19 12:34:49 +00:00
Laurent Cozic f36019c94d Generator: Fixed webpack config 2020-11-18 12:33:48 +00:00
Laurent Cozic c67c8cefdf Tools: Update plugin demos 2020-11-18 12:32:58 +00:00
Laurent Cozic a9a69b046f Plugin Generator release v1.4.5 2020-11-18 10:40:46 +00:00
Laurent Cozic 98a75e67d8 Plugins: Updated types 2020-11-18 10:38:48 +00:00
Laurent Cozic 7188eb9db4 Delete file 2020-11-18 10:37:54 +00:00
Laurent Cozic 52b13f6d56 Tools: Added script to release plugin generator 2020-11-18 10:36:31 +00:00
Laurent Cozic 8e2daef144 Plugins: Add support for the JPL plugin format 2020-11-18 10:17:27 +00:00
Laurent Cozic 73571f1c48 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-17 18:28:46 +00:00
Caleb John 3e00f6078d Plugins: Add support for external CodeMirror plugins (#4015) 2020-11-17 18:28:32 +00:00
Laurent Cozic 355ba2c278 Plugins: Add support for JPL archive format 2020-11-17 18:26:24 +00:00
Laurent Cozic 4e08adb76f Plugins: Added command to export folders and notes 2020-11-17 14:50:28 +00:00
Laurent Cozic eb8284ecdb Desktop, Cli: Resolves #4095: Allow exporting conflict notes 2020-11-17 11:50:46 +00:00
Laurent Cozic 7be93b1fbb API: Make sure pagination sort options are respected for search and other requests 2020-11-17 09:53:50 +00:00
Laurent Cozic 76cd1b15ac Tools: Updated Jest config 2020-11-17 09:34:36 +00:00
Caleb John 92bcb25ef7 Desktop: Attempt to fix Outlook drag and drop on Markdown editor (#4093) 2020-11-16 20:30:40 +00:00
Laurent Cozic bb8cac2b2f Update website 2020-11-16 18:33:18 +00:00
Laurent Cozic 39d9e5fd8b Doc: Update title 2020-11-16 18:32:54 +00:00
Laurent Cozic 5a94431b04 Update website 2020-11-16 18:31:05 +00:00
Laurent Cozic c639b0cbf5 Mobile: Fixes #4014: Prevent note view from scrolling back to top when a checkbox is pressed (Regression) 2020-11-16 17:54:07 +00:00
Laurent Cozic f81579371b How about I don't delete the mobile note editor 2020-11-16 17:20:39 +00:00
Laurent Cozic 284dbdb362 Desktop: Fixes #4038: Fixed issue when a newly created note would be automatically moved to the wrong folder on save 2020-11-16 17:11:31 +00:00
Laurent Cozic 5f05f85e41 Desktop: Fixes #4011: Prevent log from filling up when certain external editors trigger many watch events 2020-11-16 16:34:05 +00:00
Laurent Cozic 61faec147b Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-16 16:21:39 +00:00
Nick Frichette d552538541 Linux: Added i3wm as a Desktop installation option (#4094) 2020-11-16 16:21:26 +00:00
Laurent Cozic 8787d997b2 Desktop: Disable spell checker on config and search input fields 2020-11-16 16:20:26 +00:00
Laurent Cozic adde092ea6 Plugins: Fixed issue with dialog being empty in some cases 2020-11-16 16:14:26 +00:00
Laurent Cozic a808281dd2 Desktop: Regression: Fixed external edit file watching 2020-11-16 11:03:44 +00:00
Laurent Cozic 6103aad2a7 Clipper release v1.4.3 2020-11-15 23:27:13 +00:00
Laurent Cozic 1e010ec004 Clipper: Fix screenshot quality on Firefox 2020-11-15 23:21:46 +00:00
Laurent Cozic a8e36f41d5 Clipper: Fix screen ratio issue when taking a screenshot 2020-11-15 22:30:29 +00:00
Laurent Cozic f45029b2e8 Doc: Added more info about the Joplin API 2020-11-15 19:45:35 +00:00
Laurent Cozic 147f3ce073 Desktop: Fixed note list overflow when resized very small 2020-11-15 19:30:04 +00:00
Laurent Cozic ccc726f2ae Desktop: Optimized resizing window 2020-11-15 19:22:42 +00:00
Laurent Cozic 6769026265 Desktop: Put title bar and toolbar button over two lines when window size is below 800px 2020-11-15 19:21:47 +00:00
Laurent Cozic ce5276ba97 Desktop: Fix size of search bar area when notebook is empty 2020-11-15 16:02:58 +00:00
Laurent Cozic b480aae59b Plugins: Make sure "replaceSelection" command can be undone in Rich Text editor 2020-11-15 15:59:47 +00:00
Laurent Cozic ce59d29bb3 Plugins: Added support app_min_version property and made it required 2020-11-15 14:18:46 +00:00
Roman Musin fb5f20b308 Android: Fixes #4071: Make sure newly created note is saved after sharing content with the app (#4082) 2020-11-14 16:02:14 +00:00
Atrate cee42a1296 Android: Make app movable to SD card again (#4046)
Signed-off-by: Atrate <Atrate@protonmail.com>
2020-11-14 15:56:53 +00:00
Laurent Cozic 7f88f507df All: Fixes #3997: Display note count for conflict folder, and display notes even if they are completed to-dos 2020-11-14 12:37:18 +00:00
Laurent Cozic 2b95bce272 Desktop: Fixes #4073: Resource links could not be opened from Rich Text editor on Linux 2020-11-14 10:59:26 +00:00
Laurent Cozic 6463af0c31 Plugins: Rename command "editorSetText" to "editor.setText" 2020-11-14 10:57:09 +00:00
Laurent Cozic 19a8b6c285 Clean up 2020-11-14 10:09:53 +00:00
Laurent Cozic 06ea5e1878 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-14 10:08:44 +00:00
Laurent Cozic 4451bbdd71 Electron release v1.4.10 2020-11-14 00:46:18 +00:00
Laurent Cozic 2f1cc71922 Fixed path 2020-11-14 00:31:45 +00:00
Laurent Cozic a3286a9896 Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-14 00:21:16 +00:00
Laurent Cozic 83ca33611b Desktop: Make Markdown editor selection more visible in Dark mode 2020-11-14 00:14:56 +00:00
Laurent Cozic 4f41fb7b54 Plugins: Add support for editor context menu 2020-11-14 00:02:17 +00:00
Laurent Cozic 7151a48138 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-13 23:37:24 +00:00
Laurent Cozic aaaa4e4569 Plugins: Add command "editorSetText" for desktop app 2020-11-13 22:50:03 +00:00
Laurent Cozic 872d2942b4 All: Allow lowercase filters when doing search 2020-11-13 22:29:28 +00:00
Laurent Cozic 918b768634 Plugins: Fix crash when path includes trailing slash 2020-11-13 22:03:10 +00:00
Laurent Cozic 8305eb4403 API: Fix note and resource association end points 2020-11-13 21:45:25 +00:00
Laurent Cozic 91e7c66f9e Update website 2020-11-13 21:19:55 +00:00
Laurent Cozic e392efc091 ignored files 2020-11-13 21:19:02 +00:00
Laurent Cozic 458ae3731d Doc: Add beta banner for plugin API 2020-11-13 19:12:49 +00:00
Laurent Cozic a647272cf0 Plugins: Allow retrieving form values from dialogs 2020-11-13 18:48:42 +00:00
Laurent Cozic 72472c13c5 Desktop: Fixed issue with note being saved after word has been replaced by spell checker 2020-11-13 17:55:35 +00:00
Laurent Cozic 6225d20d1f Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-13 17:17:40 +00:00
Laurent Cozic 67f0739d3c Desktop: Allow customising application layout 2020-11-13 17:09:28 +00:00
Laurent Cozic 17d835d694 Tools: Apply rule @typescript-eslint/member-delimiter-style 2020-11-12 19:29:22 +00:00
Laurent Cozic 42799b0662 Tools: Apply rule @typescript-eslint/comma-dangle 2020-11-12 19:23:54 +00:00
Laurent Cozic d20694e52c Tools: Apply rule @typescript-eslint/type-annotation-spacing 2020-11-12 19:13:28 +00:00
Caleb John 62feb7ff60 Desktop: Fix drag and drop behaviour to "copy" instead of "move" (#4031) 2020-11-12 18:44:23 +00:00
Helmut K. C. Tessarek e29e745b96 Desktop: add {{bowm}} and {{bows}} - Beginning Of Week (Monday/Sunday) (#4023)
* add {{bowm}} and {{bows}} - Beginning Of Week (Monday/Sunday)

In certain situation it is useful to reference the beginning of the week.
Unfortunately the current system does not allow to that, not even with a custom datetime format.

I've also added the 2 new template variables to the documentation.

* README: better wording
2020-11-12 18:41:37 +00:00
Helmut K. C. Tessarek 340312fa80 Desktop: Fix handling of certain keys in shortcut editor (#4022)
String.fromCharCode expects unicode charcodes as an argument; e.keyCode returns javascript keycodes.
Javascript keycodes and unicode charcodes are not the same thing!

Therefore I used an array to map keycodes. This seems to be the only way to make this work properly.

I also changed the width of the shortcut recorder input field to 200px, since certain key combinations are cut off, because they don't fit in the field.
2020-11-12 18:40:00 +00:00
Rik 006239913e Doc: Update plugins.md (#4074) 2020-11-12 10:10:58 +00:00
Helmut K. C. Tessarek f4bc8cc817 remove old template 2020-11-12 00:43:13 -05:00
Helmut K. C. Tessarek fb1f43bb17 better gh issue template 2020-11-12 00:41:02 -05:00
Laurent Cozic 24cef9995a Doc: Mention page parameter for API 2020-11-11 14:32:13 +00:00
Laurent Cozic 31ffd8d7e9 Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-11 14:30:47 +00:00
Laurent Cozic 873184f69b Desktop: Regression: Fix application name 2020-11-11 14:22:42 +00:00
Laurent Cozic da6977569f Electron release v1.4.9 2020-11-11 12:52:37 +00:00
Laurent Cozic 8808b38d83 Fixed desktop build 2020-11-11 12:51:51 +00:00
Laurent Cozic ad654e30d5 Tools: fix git-changelog 2020-11-11 12:40:43 +00:00
Laurent Cozic 6f11487dba Electron release v1.4.8 2020-11-11 11:56:38 +00:00
Laurent Cozic dd0d54d4d0 Update website 2020-11-11 11:53:35 +00:00
Laurent Cozic 0fd0451c17 API: Change pagination to has_more model 2020-11-11 11:52:47 +00:00
Laurent Cozic 06f2fda946 Tools: Replace Jasmine with Jest to run tests 2020-11-10 15:59:30 +00:00
Laurent Cozic c249333e2a Tools: Fixed updateIgnored script 2020-11-10 11:26:36 +00:00
Johan Hammar 9755a69be8 Tools: Contributor fixes (#4068) 2020-11-09 19:36:49 +00:00
Laurent Cozic 18e4f7ffe7 Chore: clean up 2020-11-09 17:37:13 +00:00
Laurent Cozic 7cb60aaace Tools: Added API test to check that cursor queries return same fields 2020-11-09 17:17:51 +00:00
Laurent Cozic fbcfe432c5 Tools: Ignore files 2020-11-09 15:32:33 +00:00
Laurent Cozic ed71726e87 Desktop: Fixes #3876: Tags could not be selected in some cases 2020-11-09 13:33:12 +00:00
Laurent Cozic 31a0449e71 Tools: Added script to generate database types for TypeScript 2020-11-09 13:12:11 +00:00
Laurent Cozic 04450a6464 Doc: Update sponsors 2020-11-09 12:19:40 +00:00
Laurent Cozic d0ec598ee4 Desktop: Fixes #3904, Fixes #3973: Fixed inconsistent note list state when using search 2020-11-09 12:07:37 +00:00
Laurent Cozic ca8b05631a Tools: Fixed tests 2020-11-09 09:21:05 +00:00
Laurent Cozic 3223fd26f4 Update website 2020-11-08 19:22:58 +00:00
Laurent Cozic 7847aeda75 Doc: Exclude pre-release from changelog 2020-11-08 19:22:25 +00:00
Laurent Cozic 7d02ddfdb5 Update website 2020-11-08 19:14:47 +00:00
Johan Hammar 5079cd9ff2 Tools: Fix incorrect localization URLs (#4063) 2020-11-08 19:13:42 +00:00
Laurent Cozic 48f6412721 Tools: Make sure translation warnings are being displayed 2020-11-08 17:41:56 +00:00
Laurent Cozic 498e80f2d3 Tools: Display deleted strings when building translations, and run TypeScript before 2020-11-08 17:19:38 +00:00
Laurent Cozic 5269a4b7fa Chore: Convert ResourceService to TypeScript 2020-11-08 16:46:48 +00:00
Laurent Cozic 88a2f9c85c Desktop: Regression: Fix exporting to HTML and PDF 2020-11-08 02:20:56 +00:00
Laurent Cozic f20b8c2dc6 Desktop: Fixed text editor button tooltips 2020-11-08 01:23:12 +00:00
Laurent Cozic bd2081c3b6 Desktop: Added toolbar button to switch spell checker language 2020-11-08 01:08:33 +00:00
Laurent Cozic 6ac4131003 Tools: Move translation script to root 2020-11-07 18:44:32 +00:00
Laurent Cozic 4c5e0447a9 Electron release v1.4.7 2020-11-07 16:55:46 +00:00
Laurent Cozic 545a2206d7 Doc: updated API doc 2020-11-07 16:46:19 +00:00
Laurent Cozic aa47ffb30f Api: Added way to get the notes associated with a resource 2020-11-07 16:45:02 +00:00
Laurent Cozic 83b175bb5b Api: Added ability to watch resource file 2020-11-07 16:32:08 +00:00
Laurent Cozic 04bfbec96b Tools: Renamed package namespace from @joplinapp to @joplin 2020-11-07 15:59:37 +00:00
Laurent Cozic f950e9b03f Plugins: Force plugin devtool dialog to be detached 2020-11-07 15:50:22 +00:00
Laurent Cozic a0f21796c2 Update website 2020-11-06 21:52:57 +00:00
Laurent Cozic 9af8720199 Tools: Fixed doc update scripts 2020-11-06 21:52:24 +00:00
Laurent Cozic 53c432ce12 Tools: Update Clipper release script 2020-11-06 21:41:12 +00:00
Laurent Cozic 553bbfc818 Tools: Restored CLI release script 2020-11-06 21:25:07 +00:00
Laurent Cozic 7b0122a8db Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-06 20:41:37 +00:00
Laurent Cozic 7ea4f570cb Tools: Refactor Android release script 2020-11-06 18:45:45 +00:00
Laurent Cozic 1e1f2582c5 Tools: minor tweak 2020-11-06 12:31:30 +00:00
Laurent Cozic 7e2d512fde Merge branch 'release-1.3' into dev 2020-11-06 12:05:15 +00:00
Laurent Cozic 6b75485a1e Electron release v1.3.18 2020-11-06 11:52:20 +00:00
Laurent Cozic 0cfcc00912 Desktop: Fixes #4049: Keymap editor crash when an invalid command is used 2020-11-06 11:51:36 +00:00
Laurent Cozic 496b19b3f1 Electron release v1.3.17 2020-11-06 10:52:06 +00:00
Laurent Cozic 9618591158 Electron release v1.3.16 2020-11-06 10:51:08 +00:00
Laurent Cozic 55b6394bf3 Desktop: Fixes #4051: Random crash when syncing due to undefined tags 2020-11-06 10:50:44 +00:00
Laurent Cozic 4a1dc2c80e Tools: Need to remove spellfix.dll otherwise it gets signed by CI 2020-11-05 21:12:55 +00:00
Laurent Cozic cb66158b2d Electron release v1.4.6 2020-11-05 21:06:03 +00:00
Laurent Cozic da04d3ce51 Tools: trying a different timestamp server 2020-11-05 21:05:52 +00:00
Laurent Cozic bcbce682d5 Electron release v1.4.5 2020-11-05 20:55:01 +00:00
Laurent Cozic 08f7521e1e Tools: Fixing desktop build 2020-11-05 20:54:51 +00:00
Laurent Cozic 3579e7eab5 Electron release v1.4.4 2020-11-05 19:54:13 +00:00
Laurent Cozic 5922c6b216 Tools: Fix Linux build 2020-11-05 19:53:53 +00:00
Laurent Cozic c558e729bd Electron release v1.4.3 2020-11-05 18:58:12 +00:00
Laurent Cozic ca80101174 Tools: Fixed desktop app name 2020-11-05 18:56:35 +00:00
Laurent Cozic 6124f483dc Electron release v1.4.2 2020-11-05 18:24:07 +00:00
Laurent Cozic 90d58e4e2b Tools: Fixing Windows CI build 2020-11-05 18:23:54 +00:00
Laurent Cozic 8cd37d602c Tools: Running tests from root does not work well 2020-11-05 17:53:43 +00:00
Laurent Cozic e4ed26a961 Electron release v1.4.1 2020-11-05 17:44:29 +00:00
Laurent Cozic bc57d229fa Tools: Fix desktop build 2020-11-05 17:44:19 +00:00
Laurent Cozic c53cd52b4d Tools: Set version to 1.4 2020-11-05 17:41:25 +00:00
Laurent Cozic 0d7ca97556 Tools: Add way to get credential files 2020-11-05 17:40:13 +00:00
Laurent Cozic c1e2fd125c Fix paths 2020-11-05 17:18:38 +00:00
Laurent Cozic 6856f84faa Doc: Update doc 2020-11-05 17:15:53 +00:00
Laurent Cozic de091dfd64 Doc: Fixed gettext file url 2020-11-05 17:02:49 +00:00
Laurent Cozic cc07016b07 All: Use Lerna to manage monorepo 2020-11-05 16:58:23 +00:00
Laurent Cozic 122f20905c ios-v10.3.1 2020-11-05 14:53:44 +00:00
Laurent Cozic 5ff8beb82f fix iOS build 2020-11-05 14:53:24 +00:00
Laurent Cozic ff6cd57873 Android release v1.3.13 2020-11-05 13:46:19 +00:00
Laurent Cozic 4c948408c4 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-11-04 12:03:09 +00:00
Laurent Cozic cc3a1d78da Merge branch 'dev' into release-1.3 2020-11-04 12:02:38 +00:00
Laurent Cozic 0cc544a95f Android release v1.3.11 2020-11-04 11:58:36 +00:00
Laurent Cozic 03b7402dc5 Electron release v1.3.15 2020-11-04 11:44:33 +00:00
Laurent Cozic dd5c400c24 Electron release v1.3.14 2020-11-04 11:44:04 +00:00
Laurent Cozic abc702c21f Electron release v1.3.12 2020-11-04 11:43:40 +00:00
Laurent Cozic cc3e1bdee8 Mobile: Fixed Katex rendering 2020-11-04 11:36:44 +00:00
Laurent Cozic 10cfa773ca Mobile: Fixes #4033: Fixed clicking on links 2020-11-04 11:35:12 +00:00
Laurent Cozic 8dc42b1f41 Revert "Desktop: Fixed handling of Option key for shortcuts in macOS"
This reverts commit e4f53a48d2.

Causes other issues like this one, so it needs to be removed:

https://github.com/laurent22/joplin/issues/4032
2020-11-04 10:37:07 +00:00
Ji-Hyeon Gim 6e7ea9a549 All: Translation: Update ko.po (#4018)
It updates fuzzy translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-11-01 19:48:19 -05:00
Laurent Cozic ed2ccdd504 Merge branch 'dev' of https://github.com/laurent22/joplin into dev 2020-11-01 00:11:09 +00:00
Laurent Cozic 6d2bad01e6 Merge branch 'release-1.3' into dev 2020-10-31 16:49:50 +00:00
Laurent Cozic 3847831d80 Merge branch 'release-1.3' of github.com:laurent22/joplin into release-1.3 2020-10-31 16:45:17 +00:00
Robin 44462f4d71 All: Translation: Update nl_NL.po (#4012) 2020-10-31 12:38:54 -04:00
Laurent Cozic 4d20589773 Desktop: Remove from keymap editor commands that cannot be associated with a shortcut 2020-10-31 16:29:17 +00:00
Laurent Cozic 52140ec1a9 Merge branch 'release-1.3' into dev 2020-10-31 13:06:06 +00:00
Laurent Cozic 08c2a7ad64 Tools: Improved HTML escape in git-changelog 2020-10-31 13:05:46 +00:00
Laurent Cozic d19796f14c Electron release v1.3.11 2020-10-31 13:02:14 +00:00
Laurent Cozic e4f53a48d2 Desktop: Fixed handling of Option key for shortcuts in macOS 2020-10-31 13:01:40 +00:00
Laurent Cozic 154163bd6c Desktop: Fixes #4010: Add history backward and forward commands to keymap and menus 2020-10-31 12:46:55 +00:00
Laurent Cozic 4502414934 Desktop: Make sure all commands appear in keymap editor 2020-10-31 12:25:12 +00:00
Laurent Cozic 38e4bc61d9 Doc: Plugin doc 2020-10-30 18:50:04 +00:00
Laurent Cozic 86c471afcd Cli: Fixes #4000: Display proper error message when decryption worker cannot be started 2020-10-29 23:37:19 +00:00
Laurent Cozic e2698aaead Merge branch 'release-1.3' into dev 2020-10-29 17:10:48 +00:00
Laurent Cozic 8cfe4b0f82 Mobile: Disable beta editor for now due to bugs that cannot be fixed
and crashes.

See https://discourse.joplinapp.org/t/11658/9?u=laurent
2020-10-29 16:42:47 +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
Laurent Cozic 6d5d9323bd CLI v1.3.1 2020-10-23 16:04:34 +01:00
Laurent Cozic 76063a6284 Android release v1.3.9 2020-10-23 16:03:13 +01:00
Laurent Cozic 4119924e57 Electron release v1.3.9 2020-10-23 15:57:29 +01:00
Laurent Cozic 537336754c All: Sort tags in a case-insensitive way 2020-10-23 15:48:11 +01:00
Laurent Cozic 06f73919bd Desktop: Fixed Cut menu item and test units 2020-10-23 13:21:37 +01:00
Laurent Cozic 3f3e46081c Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-10-22 16:34:45 +01:00
Laurent Cozic 68e4b4eaad macOS: Fixes #3404: Show context menu option to copy a link 2020-10-22 16:32:13 +01:00
Gen Neko 9dcb4b51e5 All: Translation: Update ja_JP.po (#3967) 2020-10-22 11:05:28 -04:00
Laurent Cozic 8543849ea1 Tools: Fixed tests 2020-10-22 15:55:29 +01:00
Laurent Cozic 6ce5240e12 Plugins: Fixed tests 2020-10-22 14:51:59 +01:00
Rory O’Kane 5bc25aefce Desktop: Make “update is available” dialog box easier to use (#3877) 2020-10-22 12:25:06 +01:00
Naveen M V b737ca7471 All: Fix search filters when language is in Korean or with accents (#3947) 2020-10-22 12:16:47 +01:00
Laurent Cozic a5d7366f94 Desktop: Fix invalid tag state issue when importing notes or syncing 2020-10-22 11:21:16 +01:00
Laurent Cozic 98f822d89c Cleaned up plugin doc 2020-10-21 22:52:58 +01:00
Laurent Cozic c33a8250ee Desktop: Added openProfileDirectory command and menu item 2020-10-21 22:10:21 +01:00
Laurent Cozic adad406696 Update translations 2020-10-21 21:54:47 +01:00
Laurent Cozic d82eec0fa4 Tools: Render translator names as link to prevent website template from breaking 2020-10-21 21:53:41 +01:00
Laurent Cozic c93f474547 Merge branch 'release-1.3' of github.com:laurent22/joplin into release-1.3 2020-10-21 21:30:29 +01:00
Laurent Cozic 0afd4a6234 Doc: Fixed typo 2020-10-21 21:23:31 +01:00
Laurent Cozic f42786a840 Android release v1.3.8 2020-10-21 18:31:12 +01:00
Laurent Cozic 1c1f044966 Electron release v1.3.8 2020-10-21 18:19:33 +01:00
Laurent Cozic ad7a80e260 Api: Allow preserving timestamps when updating a note 2020-10-21 18:12:36 +01:00
Laurent Cozic 5e040c062c Desktop: Fixes #3962: Certain commands no longer worked. 2020-10-21 17:22:29 +01:00
Laurent Cozic 0cede5f90a Desktop: Display more info while an ENEX file is being imported 2020-10-21 16:55:52 +01:00
Laurent Cozic 8dc0deb2a4 Desktop, Cli: Fixes #3958: Fixed freeze when importing ENEX as HTML, and fixed potential error when importing resources 2020-10-21 12:02:06 +01:00
Laurent Cozic 1ca44b8f44 Desktop: Made toolbar buttons bigger and swap order of bullet and number lists 2020-10-21 10:39:53 +01:00
Laurent Cozic 4ba9e60194 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-10-21 10:12:13 +01:00
Laurent Cozic 9d0bb4257f Desktop: Regression: Fixed format of copied version info 2020-10-21 10:10:18 +01:00
Alessandro Bernardello 1a273b9bca All: Translation: Update it_IT.po (#3956)
* Updated italian translation

* Updated translator name and email
2020-10-21 01:03:23 -04:00
Laurent Cozic d9e93cd6c4 Doc: Update plugin doc 2020-10-21 01:46:53 +01:00
Laurent Cozic 5d39860707 Plugins: Allow custom commands to return a result 2020-10-21 01:43:06 +01:00
Laurent Cozic 60a6f714bc Update website 2020-10-21 00:56:03 +01:00
Laurent Cozic 6eebeca259 Tools: updated plugin types 2020-10-21 00:55:10 +01:00
Laurent Cozic 995034c53f Update plugin templates 2020-10-21 00:35:06 +01:00
Laurent Cozic 45a0981d05 Updated website 2020-10-21 00:27:11 +01:00
Laurent Cozic 3d8577a689 Plugins: Added support for content scripts
- For now, supports Markdown-it plugins
- Also fixed slow rendering of notes in some cases
- Simplified how Markdown-It plugins are created and cleaned MdToHtml code

commit 89576de289
Merge: c75aa21f 5292fc14
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 21 00:23:00 2020 +0100

    Merge branch 'release-1.3' into plugin_content_scripts

commit c75aa21ffd
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 21 00:19:52 2020 +0100

    Fixed tests

commit 075187729d
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 21 00:11:53 2020 +0100

    Fixed tests

commit 14696b8c65
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 20 23:27:58 2020 +0100

    Fixed slow rendering of note

commit 61c09f5bf8
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 20 22:35:21 2020 +0100

    Clean up

commit 9f7ea7d865
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 20 20:05:31 2020 +0100

    Updated doc

commit 98bf3bde8d
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 20 19:56:34 2020 +0100

    Finished converting plugins

commit fe90d92e01
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 20 17:52:02 2020 +0100

    Simplified how Markdown-It plugins are created

commit 47c7b864cb
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Oct 19 16:40:11 2020 +0100

    Clean up rules

commit d927a238bb
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Oct 19 14:29:40 2020 +0100

    Fixed tests

commit 388a56c5dd
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Oct 19 14:00:47 2020 +0100

    Add support for content scripts
2020-10-21 00:23:55 +01:00
Laurent Cozic 5292fc1402 Tools: Escape HTML when generating changelog 2020-10-20 17:16:09 +01:00
Laurent Cozic 03063f1137 All: Fixed setting issue that would cause a password to be saved in plain text in the database, even when the keychain is working 2020-10-20 16:37:14 +01:00
Laurent Cozic b125a768b8 Tools: Added test units for keychains on macOS and Windows 2020-10-20 16:16:18 +01:00
Laurent Cozic a721f170e4 Doc: Added info about search filters 2020-10-20 12:12:00 +01:00
Laurent Cozic 76cd69ea16 Electron release v1.3.7 2020-10-20 12:01:12 +01:00
Laurent Cozic 45d4f277e2 Merge branch 'dev' into release-1.3 2020-10-20 12:00:39 +01:00
Naveen M V fc2a52aa1a Desktop, Cli; Fix notebook search filter (#3946) 2020-10-20 11:54:46 +01:00
Roman Musin b3e5a1e48d Android: do not show long press menu on press and drag (#3939) 2020-10-20 11:51:24 +01:00
Laurent Cozic 45eb902030 Fixed tests 2020-10-20 11:49:15 +01:00
Ian Slinger 456f7ac00c Desktop, Cli: Import <strike>,<s> tags (strikethrough) from Evernote (#3936) 2020-10-20 11:47:48 +01:00
Aaron a93bda71fe All: Resolves #3691: Added support for a custom S3 URL (#3921) 2020-10-20 11:44:11 +01:00
Alkindi42 0f9d92dd3d Doc: add archlinux package for pre-release in docs (#3875) 2020-10-20 11:42:41 +01:00
Laurent Cozic 5543e9ef64 Merge branch 'release-1.3' of https://github.com/laurent22/joplin into release-1.3 2020-10-20 11:14:58 +01:00
Laurent Cozic 22dd613660 Revert "Plugins: Adding support for command boolean expressions"
This reverts commit f8f46db910.

Feature was implemented in 3a57cfea02
2020-10-20 11:13:56 +01:00
Laurent Cozic f7502fe34b Electron release v1.3.6 2020-10-19 23:25:59 +01:00
Laurent Cozic 8254206f44 Desktop: Fixes #3893 (maybe): Trying to fix sidebar performance issue when there are many notebooks or tags 2020-10-19 23:24:40 +01:00
Laurent Cozic 3a57cfea02 Desktop: Simplified and improve command service, and added command palette
- Commands "enabled" state is now expressed using a "when-clause" like in VSCode
- A command palette has been added to the Tools menu
2020-10-18 21:52:10 +01:00
Helmut K. C. Tessarek 71bf0437c1 Desktop: Tray: Exit -> Quit (#3945) 2020-10-18 12:57:04 +01:00
Tomáš Bambas eca4e24362 All: Translation: Update cs_CZ.po (#3940) 2020-10-17 14:01:32 -04:00
Andros Fenollosa 9a6efb7b37 All: Translation: Update es_ES.po (#3929)
* Update locale es

* Finish translate
2020-10-17 14:00:48 -04:00
jduar 4b666cbbd2 All: Translation: Update pt-PT.po (#3924)
* Updated the Portuguese (pt-PT) translation.

* Updated translator name and email.
2020-10-17 13:58:49 -04:00
Laurent Cozic f8f46db910 Plugins: Adding support for command boolean expressions 2020-10-17 16:50:07 +01:00
Laurent Cozic f529adac99 Electron release v1.3.5 2020-10-17 14:05:13 +01:00
Laurent Cozic 3a52b9764b Electron release v1.3.4 2020-10-17 14:03:16 +01:00
Laurent Cozic 7e78d7716b Desktop: Regression: Fixed opening links 2020-10-17 13:56:41 +01:00
Laurent Cozic 0488c5c4cb Android release v1.3.7 2020-10-17 12:07:51 +01:00
Laurent Cozic 921cc3b6c6 Electron release v1.3.3 2020-10-17 11:37:37 +01:00
Laurent Cozic 2a7aa28d4c Desktop, Cli: Fixes #3923 (Regression): Importing ENEX as HTML was importing as Markdown 2020-10-17 11:35:51 +01:00
Laurent Cozic 7b3440ac4c Desktop: Fixes #3915: Editor toolbar was disabled when importing note from MD file 2020-10-17 11:15:43 +01:00
Laurent Cozic 958e5a80b7 Desktop: Fixes #3903: Header links with special characters were no longer working 2020-10-16 22:55:48 +01:00
Laurent Cozic 3179117c62 Mobile: Fixed notebook expand icons 2020-10-16 21:52:27 +01:00
Laurent Cozic d895463167 All: Removed OneDrive Dev sync target which was not really useful 2020-10-16 21:34:34 +01:00
Laurent Cozic 7e0e513051 Desktop: Regression: Fixed check for update 2020-10-16 21:14:57 +01:00
Laurent Cozic 4309c4f8e2 Desktop: Fixed Toggle Editor button toolip and icon 2020-10-16 18:52:17 +01:00
Laurent Cozic 20b1c90574 Android: Fixed signing config for production 2020-10-16 18:30:58 +01:00
Laurent Cozic 7ff6ceb585 Merge branch 'release-1.3' of https://github.com/laurent22/joplin into release-1.3 2020-10-16 17:45:29 +01:00
Laurent Cozic 3dc3f334ec Tools: Cleaned up ignored files as it was breaking VSCode search 2020-10-16 17:44:50 +01:00
Laurent Cozic 3476211f8b Desktop: Regression: Fixed move to notebook from context menu 2020-10-16 17:44:04 +01:00
Laurent Cozic 48e299916f Desktop: Make sidebar item font weight normal (not bold) 2020-10-16 17:07:43 +01:00
Laurent Cozic 35aebc9f52 Android release v1.3.3 2020-10-16 17:05:22 +01:00
Laurent Cozic cb3e1cf1e9 Mobile: Upgraded React Native to v0.63
commit 2fb6cee901
Merge: 4e303be85f db509955f6
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 16:24:07 2020 +0100

    Merge branch 'dev' into rn_63

commit 4e303be85f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 16:14:39 2020 +0100

    Clean up

commit e3a37ec2d6
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 15:57:55 2020 +0100

    Use different script for pre-commit and manual start

commit bd236648fc
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 15:56:45 2020 +0100

    Removed RN eslint config

commit e7feda41c9
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 15:27:08 2020 +0100

    Revert "Disable git hook for now"

    This reverts commit 89263ac742.

commit cfd63fe46f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 13:02:32 2020 +0100

    Ask permission to use geo-location

commit 66059939a3
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 12:26:20 2020 +0100

    Fixed WebView race condition

commit 1e0d2b7b86
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 11:56:21 2020 +0100

    Fixed webview issues

commit f537d22d7f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Oct 16 11:08:29 2020 +0100

    Improve resource file watching

commit eec32cf70a
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 18:40:13 2020 +0100

    Removed cache package dependency and implemented one more suitable for React Native

commit efa346fea4
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 14:57:21 2020 +0100

    iOS: Added fonts to Info.plist although it was working without it

commit 572b647bc0
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 14:56:49 2020 +0100

    Specify content-type header for OneDrive to prevent network error

commit bcedf6c7f0
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 12:45:01 2020 +0100

    iOS: Disable long press menu since it is already built-in

commit 7359dd61d1
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 12:37:40 2020 +0100

    Removed unused react-native-device-info

commit 2d63ab36d3
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 12:35:54 2020 +0100

    iOS: Fixed taking a picture

commit 8e2875a91c
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 12:11:13 2020 +0100

    iOS: Restored camera roll functionality

commit 75f5edf2ad
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 11:40:13 2020 +0100

    iOS: Fixed build settings

commit b220c98419
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 11:40:03 2020 +0100

    iOS: Got images to work with WebKit

commit c34b43e841
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 10:24:52 2020 +0100

    iOS: Restore more settings

commit 32997611e6
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Oct 15 10:15:14 2020 +0100

    iOS: Added back icons and other properties

commit b5811d7f7c
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 23:53:14 2020 +0100

    Got iOS build to work

commit dc6d7c00e0
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 18:40:06 2020 +0100

    Imported old settings in gradle build

commit dff59f5603
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 18:20:00 2020 +0100

    Restored sharing

commit 0bdb449e72
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 17:25:40 2020 +0100

    Updated NoteBodyViewer

commit 0c0d228815
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 16:54:42 2020 +0100

    Fixed networking

commit 6ff45ce485
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 13:11:00 2020 +0100

    Fixed document picker

commit cc889182b6
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Oct 14 12:56:27 2020 +0100

    Added back support for alarms

commit 040261abfa
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 22:04:49 2020 +0100

    Fixed Clipboard and remove image-picker package

commit 1077ad8f16
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 21:54:52 2020 +0100

    Fixed Select Alarm dialog and PoorManIntervals class

commit 8296676fd5
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 21:32:52 2020 +0100

    Fixed icons and warnings

commit 3b0e3f6f43
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 17:02:59 2020 +0100

    Got app to build again

commit 89263ac742
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 15:41:17 2020 +0100

    Disable git hook for now

commit d6da162f67
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 15:39:12 2020 +0100

    Restored back all RN packages

commit 7f8ce3732c
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 15:13:12 2020 +0100

    Restored base packages

commit ea59726eb3
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Oct 13 15:05:17 2020 +0100

    Started over from scratch
2020-10-16 16:26:19 +01:00
Andros Fenollosa db509955f6 Cli: Updated installation script with BSD support (#3930) 2020-10-16 15:18:57 +01:00
Caleb John fb39899f8e Desktop, Cli: Regression: Fix export of pluginAssets when exporting to html/pdf (#3927) 2020-10-16 15:18:19 +01:00
Laurent Cozic f5d4bedc07 Doc: Fixed plugin API 2020-10-15 16:08:01 +01:00
Laurent Cozic e710709c15 Fixed special space 2020-10-15 15:54:31 +01:00
Laurent Cozic d74d6d9539 Update website 2020-10-15 15:35:43 +01:00
Laurent Cozic 435e8dfc3b Trying deployment again 2020-10-15 15:17:18 +01:00
Laurent Cozic 6c68459b34 Update website 2020-10-15 15:07:26 +01:00
Laurent Cozic 2e75a63b26 Updatee website 2020-10-13 13:02:35 +01:00
Laurent Cozic c328996568 Desktop: Fixed toggleNoteList and toggleSidebar commands 2020-10-13 13:01:02 +01:00
Laurent Cozic c648f19693 Desktop: Added support for Menu API for plugins 2020-10-13 12:57:03 +01:00
Laurent Cozic 2caaf8e8c1 Desktop: Added support for plugins packaged as JS bundles 2020-10-13 11:16:36 +01:00
Laurent Cozic ceb7a7303d Desktop: Plugin API - added support for settings.globalValue method 2020-10-13 09:59:53 +01:00
Laurent Cozic c01f533342 Desktop: Regression: Remove Hide Joplin menu item on Linux too 2020-10-13 09:45:40 +01:00
Laurent Cozic ff50361e19 Merge branch 'dev' into release-1.3 2020-10-13 09:42:26 +01:00
Laurent Cozic 3539a452a3 Desktop: Remove Hide Joplin menu item on Linux and Windows 2020-10-12 10:45:00 +01:00
Roman Musin ea878fb614 Mobile: Long press on images or other attachments to share them (#3367) 2020-10-12 10:25:59 +01:00
Anton Tuchkov 5fd0408365 Desktop: Added Thunderbird count for desktop client (#3880) 2020-10-12 10:13:41 +01:00
Laurent Cozic 2d099b2bed Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-10-12 10:03:54 +01:00
Caleb John 3c0b9ee522 Desktop: Actually enter insert mode after pressing o/O in CodeMirror vim mode (#3897) 2020-10-12 10:01:40 +01:00
Laurent Cozic 9dfe084a02 Destkop: Create template directory on startup 2020-10-12 09:52:36 +01:00
Rasul Kireev 987890ba98 Docs: Fixed broken link in plugins.md (#3901)
The link to the plugin tutorial was broken.
2020-10-12 09:40:06 +01:00
Ji-Hyeon Gim 3358c46122 All: Translation: Update ko.po (#3890)
It updates fuzzy/missing translations for Korean.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-10-11 22:42:18 -04:00
Laurent Cozic 66204401c9 Desktop: Fixes #3899: Regression - Layout Button Sequence menu items were disabled 2020-10-11 22:22:04 +01:00
Laurent Cozic 0644e2897d Security: Updated packages to fix security vulnerabilities 2020-10-11 22:16:53 +01:00
Laurent Cozic 5761451def Merge branch 'dev' into release-1.3 2020-10-11 22:13:06 +01:00
Laurent Cozic d819e6ee0c Merge branch 'release-1.2' into dev 2020-10-11 22:12:42 +01:00
Laurent Cozic b66be79351 ios-v10.2.1 2020-10-11 21:56:19 +01:00
Laurent Cozic 433fa21069 Mobile: Upgrade slug package to fix btoa bug 2020-10-11 19:54:13 +01:00
Laurent Cozic 12db3d20ee Electron release v1.3.2 2020-10-11 19:37:57 +01:00
Laurent Cozic 80a70a6649 Desktop: Regression: Context menu in sidebar could point to wrong item 2020-10-11 19:37:12 +01:00
Laurent Cozic 02ed297529 tab 2020-10-11 19:27:33 +01:00
Laurent Cozic 30543104be Fixed translations 2020-10-11 16:18:58 +01:00
Laurent Cozic b6a004086c Doc: Changed GitHub links from master to dev 2020-10-11 16:17:51 +01:00
Laurent Cozic 4265b3afb0 Fix French translation 2020-10-11 16:04:14 +01:00
Laurent Cozic ccd7ba28d7 Electron release v1.3.1 2020-10-11 15:43:08 +01:00
Laurent Cozic 871f8b3a72 Merge branch 'release-1.2' into dev 2020-10-11 15:22:11 +01:00
Laurent Cozic f276d2b2d4 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-10-11 15:13:47 +01:00
Laurent Cozic 2bb5acdfb1 Android release v1.2.6 2020-10-11 15:06:41 +01:00
Laurent Cozic dda0d8ca08 Mobile: Fixes #3815: Fixed btoa error 2020-10-11 14:56:30 +01:00
Laurent Cozic 15f22c0507 Cli: Fixes #3847: Crash when trying to change app locale 2020-10-10 14:17:40 +01:00
Laurent Cozic fa7bd2cfab Desktop, Cli: Resolves #3884: Allow setting note geolocation attributes via API 2020-10-10 14:09:54 +01:00
Laurent Cozic dc51781976 Desktop: Fixes #3886: Allows toggling external editing off and on again 2020-10-10 13:32:30 +01:00
Laurent Cozic c874aee774 Merge branch 'release-1.2' into dev 2020-10-10 13:13:19 +01:00
Laurent Cozic 6c84fdc51d Tools: Added clean script 2020-10-10 13:02:37 +01:00
Caleb John 8ff0f7c529 fix settings import in useJoplinMode (#3889) 2020-10-10 12:44:48 +01:00
Laurent Cozic b326ffc41c Doc: Fixed plugin demo links 2020-10-09 22:00:03 +01:00
Laurent Cozic a0de8582e6 Update website 2020-10-09 21:56:56 +01:00
Shawn Axsom 5eb0417b1a All: Sort search results by average of multiple criteria, including 'Sort notes by' field setting (#3777)
* Weight search results by most recently updated

As discussed here: https://github.com/laurent22/joplin/pull/3777#issuecomment-696491859
Before this commit, results were rarely sorted by date. Content weights and fuzziness were
determined, and then the first criteria to differ would win in sort order (and user_updated_time
was the last criteria checked).

Now the weight score itself will also include age of user_updated_time, surfacing fresh content.
At the current alpha level, results are weighted logarithmically, prioritizing mostly within the
last 30 days, and especially heavily within the past week.

* Updated unit tests to weight search results by last updated date

* Updated unit test title

* Fixed issue with weighted search engine test, and made it more deterministic using mock date

Date was being calculated only at the start of the test suite. It also wasn't using a set mock date, so the milliseconds between the real search engine calculations and the test calculation caused differences in results

* Added initial Search Engine spec

* Added Search Engine spec to README.md

* Renamed Search Sorting spec per laurent22's mentioned naming

* Revised copy in search sorting spec

Co-authored-by: Laurent <laurent22@users.noreply.github.com>
2020-10-09 21:51:11 +01:00
Rahil Sarvaiya c42d9cf069 Desktop: Disabled emoji highlighting in editor when emoji plugin is disabled (#3852) 2020-10-09 21:43:39 +01:00
Caleb John d965a7b6db Bump mermaid to 8.8.1 (#3853)
* Bump mermaid to 8.8.1

* bump mermaid in reactnativeclient

* Add package-lock files
2020-10-09 21:42:16 +01:00
bestlibre c1919c2908 Missing translation in french po (#3867) 2020-10-09 21:41:33 +01:00
Laurent Cozic 3fd7470104 Updated French translation 2020-10-09 21:35:19 +01:00
Laurent Cozic 0bf74142ac Improved building website
- Added script to check links
- Moved plugin API doc to separate directory
- Added script to build website and plugin doc
- Moving static assets in separate directory
2020-10-09 21:29:16 +01:00
Helmut K. C. Tessarek b3bf7144ac Update translations 2020-10-09 16:05:10 -04:00
Laurent Cozic 5738a4f92b Fixing links 2020-10-09 19:35:50 +01:00
Laurent Cozic 784851b217 Fixing links 2020-10-09 19:30:57 +01:00
Laurent Cozic 0e0803e050 Fixing links 2020-10-09 19:27:33 +01:00
Laurent Cozic 3d3abfe259 Add back plugin doc 2020-10-09 19:19:13 +01:00
Laurent Cozic 3f38b518fe rebuild website from scratch 2020-10-09 19:12:20 +01:00
Laurent Cozic e673ee97de Fixing links 2020-10-09 19:09:52 +01:00
Laurent Cozic 7cb55ffdc4 Fixing doc 2020-10-09 19:04:18 +01:00
Laurent Cozic b706217d41 Update website 2020-10-09 18:55:04 +01:00
Laurent Cozic 6f680081f4 Update website 2020-10-09 18:38:28 +01:00
Laurent fe41d37f8f All: Add support for application plugins (#3257) 2020-10-09 18:35:46 +01:00
Laurent Cozic 833fb1264f Merge branch 'release-1.2' into dev 2020-10-09 18:33:27 +01:00
Laurent Cozic f007735936 ios-v10.2.0 2020-10-09 17:26:38 +01:00
Laurent Cozic 73a39d36ea Update website 2020-10-09 14:58:06 +01:00
Laurent Cozic a43ab26a46 Merge branch 'release-1.2' into dev 2020-10-09 14:57:44 +01:00
Laurent Cozic f5f117cb72 Electron release v1.2.6 2020-10-09 12:17:54 +01:00
Laurent Cozic fc6da04081 CLI v1.2.3 2020-10-09 12:17:40 +01:00
Laurent Cozic 12ff654986 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-10-09 12:10:16 +01:00
Laurent Cozic e852ad846f Electron release v1.2.5 2020-10-09 12:10:06 +01:00
Laurent Cozic 28e00fdf2e Android release v1.2.5 2020-10-08 12:56:12 +01:00
Laurent Cozic 3bd0656eab Android release v1.2.4 2020-10-08 12:51:48 +01:00
Laurent Cozic e9af71dd76 Android: Reverted app to singleTop launch mode and fixed potential crash when sharing with app 2020-10-08 11:49:39 +01:00
Laurent Cozic 73b33e8e32 Android: Fixes #3800: Simplify initialisation code to prevent sharing
with app to create multiple instance of app and break settings.

Revert "Mobile: Add startup screen to show progress of db migration"

This reverts commit 569355a318.
2020-10-08 11:35:29 +01:00
Laurent Cozic c2c7efee91 Desktop: Also make toggle button area wider 2020-10-07 21:03:56 +01:00
Laurent Cozic c9c44d5643 Merge branch 'release-1.2' into dev 2020-10-07 21:00:20 +01:00
Laurent Cozic 0836fca822 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-10-07 20:59:50 +01:00
Laurent Cozic 566df5039c Desktop: Fixes #3876: Notebooks and tags click area was too narrow 2020-10-07 20:58:43 +01:00
Laurent Cozic 559655bf33 Android release v1.2.3 2020-10-06 13:06:48 +01:00
Laurent Cozic 0eab23fbcf Android: Set app launchMode to singleInstance to try to fix lost settings issue 2020-10-06 13:02:41 +01:00
Laurent Cozic f334f4f487 All: Improved handling of database migration failures 2020-10-06 12:47:33 +01:00
over-soul 49bfa49489 All: Translation: Update fa.po (#3856)
Updated some existing Persian translations and added some new translations.

Co-authored-by: over-soul <ali@elego.com>
2020-10-02 12:06:30 -04:00
Paweł Żukowski 5f81944a3e All: Translation: Update pl_PL.po (#3855)
Translate missing strings and fix few existing typos.
2020-10-02 12:05:10 -04:00
Laurent Cozic 00057da17d Electron release v1.2.4 2020-09-30 08:16:46 +01:00
Laurent Cozic 0a05464013 Desktop: Regression: Context menu on sidebar did not work anymore 2020-09-30 08:16:20 +01:00
Laurent Cozic 26f5a606e0 Merge branch 'release-1.2' into dev 2020-09-29 14:29:38 +01:00
Laurent Cozic 9ebb574059 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-09-29 14:27:33 +01:00
Laurent Cozic d29c3c2466 Desktop: Regression: Sidebar toggle button did not work anymore 2020-09-29 14:26:05 +01:00
Laurent Cozic a71f1c19ec Android release v1.2.2 2020-09-29 12:40:46 +01:00
Laurent Cozic 485921d879 CLI v1.2.2 2020-09-29 12:34:42 +01:00
Laurent Cozic 15de7572c0 Electron release v1.2.3 2020-09-29 12:32:24 +01:00
Laurent Cozic 09f41dd50e Desktop: Make global search field wider when it has focus 2020-09-29 12:31:19 +01:00
Laurent Cozic 7b8ee467a0 Desktop: Improved rendering of All Notes item in sidebar 2020-09-29 11:49:51 +01:00
Laurent Cozic 99a496d684 Desktop: Always label "Click to add tags" 2020-09-29 11:33:22 +01:00
Laurent Cozic 9d6975a9e2 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-29 10:57:34 +01:00
Laurent Cozic f43ee123d8 Tools: Fixed tests 2020-09-29 10:54:31 +01:00
Laurent Cozic f42fb1b871 Changed tag label 2020-09-29 10:51:47 +01:00
Laurent Cozic cf2442c5b2 Desktop: Fixes #3835: Prevent crash in rare case when opening the config screen 2020-09-29 08:40:14 +01:00
Laurent Cozic e0e4735b03 Desktop: Fixes #3754: Refresh search results when searching by tag and when a tag is changed 2020-09-29 08:11:52 +01:00
osso73 138faa2aae All: Translation: Update ca.po (#3844) 2020-09-29 02:06:23 -04:00
Laurent Cozic 8bd58c9608 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-09-28 19:19:52 +01:00
Laurent Cozic 215a725ded Mobile: Fixes #3834: Fixed search highlights 2020-09-28 19:19:21 +01:00
Naveen M V 12c0a05af0 Desktop: Keep search fuzzy scores between 0 and 2 (#3812) 2020-09-28 18:58:19 +01:00
Caleb John a7fa119041 Desktop: Extend functionality of codemirror vim (#3823)
add swapLine(Up/Down)
have `o` use the more complex list indent
enable sync initializing from vim (and maybe emacs)
split keymap stuff into it's own file
2020-09-28 18:57:17 +01:00
Laurent Cozic 7fb52b8b0e Desktop: Fix issue with highlighted search terms in CodeMirror viewer 2020-09-28 18:44:21 +01:00
Laurent Cozic 3e86ae4a82 Desktop: Disable fuzzy search for now due to performance issues 2020-09-28 18:41:16 +01:00
Ji-Hyeon Gim ca46590ff3 All: Translation: Update ko.po (#3813)
Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-09-24 21:17:53 -04:00
Laurent Cozic 947d81d96d Desktop: Optimised sidebar rendering speed 2020-09-24 14:30:20 +01:00
Laurent Cozic 6ca640d2ed Desktop: Fix: Fade out checked items in Rich Text editor too 2020-09-23 17:49:25 +01:00
Laurent Cozic 6aca233b21 CLI v1.2.1 2020-09-23 12:16:58 +01:00
Laurent Cozic 2200be697e Cli: Fixed crash due to missing spellfix extension 2020-09-23 12:14:17 +01:00
Laurent Cozic 25ab3c323b Desktop: Fixes #3801: Fixed editor font size 2020-09-23 11:39:36 +01:00
Laurent Cozic 5bf30a9586 Merge branch 'release-1.2' into dev 2020-09-23 10:24:55 +01:00
Laurent Cozic b6779a8074 Desktop: Fixes #3810: Only disable relevant toolbar buttons when editor is read-only 2020-09-23 10:21:24 +01:00
Caleb John 59599d318c Desktop: Adjust the codemirror code block colors for the dark theme (#3794) 2020-09-23 09:34:39 +01:00
Arda Kılıçdağı 538600fd6c All: Translation: Update tr_TR.po (#3798) 2020-09-22 21:12:31 -04:00
Ji-Hyeon Gim 63264ba471 All: Translation: Update ko.po (#3778)
This patch includes the translation of missing strings, the improvement of the existing translation

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-09-22 21:11:55 -04:00
Laurent Cozic 95e7f3df7d Electron release v1.2.2 2020-09-22 16:39:18 +01:00
Laurent Cozic 366fd2a333 Fixed desktop build 2020-09-22 16:38:47 +01:00
Laurent Cozic 5be99a4a16 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-09-22 16:37:23 +01:00
Laurent Cozic d86f6a1fbd Tools: Require setting type flag for new Android releases 2020-09-22 16:36:46 +01:00
Laurent Cozic 7d68208cb4 Android release v1.2.1 2020-09-22 16:17:11 +01:00
Laurent Cozic e9de9d9128 Electron release v1.2.1 2020-09-22 16:02:51 +01:00
Laurent Cozic 1af16d9f0b Tools: Update package locks 2020-09-22 16:02:22 +01:00
Laurent Cozic 8e11eababa Android: Fixes #3797: Disable beta editor even if it was already enabled 2020-09-22 16:01:00 +01:00
Laurent Cozic 4ec9faadd5 Desktop: Disable auto-update by default 2020-09-22 15:41:25 +01:00
Laurent Cozic 5cf462c885 Tools: Increase release version to 1.2 2020-09-22 15:31:32 +01:00
Laurent Cozic f7ef0a2b1e Tools: Added script to automatically increase major and minor version numbers on new releases 2020-09-22 15:30:20 +01:00
Laurent Cozic 870f55a6c5 Merge branch 'release-1.2' of github.com:laurent22/joplin into release-1.2 2020-09-22 14:37:34 +01:00
Caleb John 7f7e38b434 Desktop, Mobile: Resolves #3740: Upgrade Mermaid to v8.8.0 (#3745)
Co-authored-by: Laurent <laurent22@users.noreply.github.com>
2020-09-22 13:21:35 +01:00
Caleb John 460a07b1a3 Desktop: Fix missed highlighting when using the global search (#3717) 2020-09-22 13:17:51 +01:00
Caleb John 48c9b86d2b Desktop: Fixes #3791: Add stricter rules for katex blocks (#3795) 2020-09-22 13:16:37 +01:00
Caleb John 7202066c1f Desktop: Fix bug where editor would scroll to focus global search (#3787) 2020-09-22 13:12:22 +01:00
Carlos Eduardo 5226f0019b Desktop: Add frequently used languages to markdown editor (#3786) 2020-09-22 13:11:12 +01:00
Laurent Cozic 26ac745419 Deskop, Cli: Fixes #3780: Fixed link generation when exporting to PDF or HTML 2020-09-22 12:56:56 +01:00
Laurent Cozic b3f2bbee5b Desktop, Cli: Fixes #3760: Improved handling of special characters when exporting to Markdown 2020-09-22 12:06:19 +01:00
Laurent Cozic 56c6cfc785 Update website 2020-09-21 17:53:14 +01:00
Laurent Cozic 1db4932573 Merge branch 'release-1.2' into dev 2020-09-21 17:52:25 +01:00
Laurent Cozic a2873ebbc5 Merge branch 'release-1.1' into dev 2020-09-21 17:52:19 +01:00
Laurent Cozic f652011d59 Desktop: Fixes #3748: Fixed issue when switching from search to "All notes" 2020-09-21 17:50:59 +01:00
Laurent Cozic 27c572b2f5 Desktop: Fixes #3700: Disable editor shortcuts when a dialog, such as GotoAnything, is visible 2020-09-21 17:31:25 +01:00
Laurent Cozic 7a4c97618d Desktop: Improved menu enabled states when not in main screen 2020-09-21 17:09:57 +01:00
Laurent Cozic 3ac4fbeee5 Desktop, Mobile: Fixes #3698: Always use light theme for notes in HTML mode 2020-09-21 16:41:24 +01:00
Laurent Cozic 9e05fa553c Desktop: Fixes #3684: Allow Read Time label to be translated 2020-09-21 16:16:28 +01:00
Laurent Cozic d4f0d2423d CLI v1.1.8 2020-09-21 13:03:33 +01:00
Laurent Cozic abdd7e3256 Tools: Improved git changelog 2020-09-21 13:01:46 +01:00
Laurent Cozic f3ea476f27 Merge branch 'release-1.1' of github.com:laurent22/joplin into release-1.1 2020-09-21 12:40:28 +01:00
Laurent Cozic aa22af443c Tools: Clean up after spellfix build 2020-09-21 12:35:20 +01:00
Laurent Cozic ce3bd2a47d Tools: Fixed Cli version handling 2020-09-21 12:16:05 +01:00
Laurent Cozic a9b26246e6 Merge branch 'dev' into release-1.2 2020-09-21 11:56:32 +01:00
Laurent Cozic cc1e941dd9 Merge branch 'release-1.1' into dev 2020-09-21 11:55:47 +01:00
Laurent Cozic 9610b7e6bd Electron release v1.1.4 2020-09-21 11:42:26 +01:00
Marc BOUVIER ad85a12535 All: Translation: Update fr_FR.po (#3776) 2020-09-19 13:35:05 -04:00
Ji-Hyeon Gim b825346829 All: Translation: Update ko.po (#3771)
Update ko.po translations.

Signed-off-by: Ji-Hyeon Gim <potatogim@potatogim.net>
2020-09-19 13:32:37 -04:00
Ettore Atalan bd4cbaf93d All: Translation: Update de_DE.po (#3770)
This patch includes the translation of missing strings, the improvement of the existing translation and the replacement of Anglicisms by German words.
2020-09-19 13:31:25 -04:00
Laurent Cozic 9af2a19bdf Merge branch 'dev' into release-1.2 2020-09-19 14:22:02 +01:00
Laurent Cozic d3fa906a9a Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-19 14:20:02 +01:00
Gen Neko 22679641ee All: Translation: Update ja_JP.po (#3761) 2020-09-18 01:56:18 -04:00
Laurent Cozic 0ca7457000 Electron release v1.1.3 2020-09-17 10:19:25 +01:00
Laurent Cozic c84e49c71c All: Fixes #3696: Increased file extension limit to 20 to prevent issue when using external editors 2020-09-17 10:17:45 +01:00
Laurent Cozic 07ab0e986d Merge branch 'release-1.1' of github.com:laurent22/joplin into release-1.1 2020-09-17 10:00:30 +01:00
Laurent Cozic 17957f5da4 Desktop, Cli: Do not prevent export when one item is still encrypted 2020-09-17 10:00:13 +01:00
Naveen M V a7b5d43e69 Desktop: Fix: Creating a note after backward redirection places it in a wrong notebook (#3759) 2020-09-17 09:32:52 +01:00
Caleb John 38eda3f151 Desktop: Fixes #3749: Use joplin list handling in emacs mode (#3758) 2020-09-17 09:29:19 +01:00
Laurent 056285deda Desktop: UI update (#3586) 2020-09-15 14:01:07 +01:00
Laurent Cozic bdedf69439 Tools: Remove console statement 2020-09-15 12:13:29 +01:00
Laurent Cozic c9451d8675 Electron release v1.1.2 2020-09-15 12:12:16 +01:00
Laurent Cozic c38834b04c Updated French translation 2020-09-15 12:08:49 +01:00
Laurent Cozic 851eee1500 Fixed and simplified translations 2020-09-15 12:08:25 +01:00
Laurent Cozic 40e24102ce Merge branch 'release-1.1' into dev 2020-09-14 13:06:56 +01:00
Laurent Cozic 7614a795e9 Fixed tests 2020-09-14 13:06:33 +01:00
Laurent Cozic 1273a1dc5f Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-14 11:26:41 +01:00
Laurent Cozic 10909fe4fc Merge branch 'release-1.1' into dev 2020-09-14 11:26:27 +01:00
Laurent Cozic 9b3d3026bf Merge branch 'release-1.0' into dev 2020-09-14 11:26:18 +01:00
Laurent Cozic 96076c84f4 CLI v1.0.168 2020-09-14 09:50:09 +01:00
Helmut K. C. Tessarek 2c553db45a Update translations 2020-09-14 02:22:27 -04:00
Laurent Cozic 7d7005596f Desktop: Security: Upgrade packages to fix vulnerabilities 2020-09-13 17:25:46 +01:00
Laurent Cozic 998dd52adc Desktop: Clarifies labels of certain actions, and added shortcut for note list toggle 2020-09-13 17:21:11 +01:00
Patryk Długajczyk 2a1c6d6475 Linux: Fixes #3720: Fix icons path in AppImage build (#3721) 2020-09-12 00:45:44 +01:00
Laurent Cozic 1ba0644142 Merge branch 'release-1.1' of github.com:laurent22/joplin into release-1.1 2020-09-12 00:24:10 +01:00
Laurent Cozic 88ac57d7f3 Tools: Fixed handling of security vulnerabilities in git-changelog 2020-09-12 00:22:17 +01:00
Laurent Cozic 314686bede Android release v1.1.1 2020-09-12 00:18:03 +01:00
Laurent Cozic af8845f209 Tools: Fixed Android version handling 2020-09-12 00:10:18 +01:00
Laurent Cozic c95d7f9d37 Electron release v1.1.1 2020-09-12 00:06:59 +01:00
Laurent Cozic 2510c659e6 Clear build number 2020-09-12 00:06:25 +01:00
Laurent Cozic b7523e1b21 Merge branch 'dev' into release-1.1 2020-09-12 00:03:29 +01:00
Laurent Cozic e4e9e801a2 Android: Fix build 2020-09-11 23:57:06 +01:00
Laurent Cozic 524ec12d8a Android: Remove option for new editor as it crashes the app 2020-09-11 23:56:45 +01:00
Laurent Cozic 1108e8c28a Merge branch 'release-1.0' into dev 2020-09-11 23:34:44 +01:00
Laurent Cozic 0f1156ab9c Desktop: Fixed clock sync logic when creating new sync target 2020-09-11 23:33:34 +01:00
Laurent Cozic 2a08cc332a Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-11 23:02:53 +01:00
Naveen M V 5d2baa872e Desktop: Fix wildcard search (#3713) 2020-09-11 22:52:32 +01:00
Naveen M V 4b377589aa Desktop: Fix bug with quotes when searching (#3735) 2020-09-11 11:30:57 +01:00
Laurent Cozic cf78204c85 Doc: Added more info about sync lock refresh mechanism 2020-09-11 11:26:07 +01:00
Laurent Cozic c513cdd4eb Desktop: Sync immediately on startup 2020-09-09 14:45:26 +01:00
Laurent Cozic 5f410e80e6 Merge branch 'release-1.0' into dev 2020-09-09 13:59:36 +01:00
Laurent Cozic 2aa7eaa192 Electron release v1.0.245 2020-09-09 12:39:06 +01:00
Laurent Cozic b24d060281 All: Got clock sync to work on mobile 2020-09-09 12:25:31 +01:00
Laurent Cozic a014b9347e Merge branch 'release-1.0' of github.com:laurent22/joplin into release-1.0 2020-09-09 11:39:57 +01:00
Laurent Cozic 582ab4ac13 All: Implemented more reliable way to sync device and server clocks that would work with filesystem sync too 2020-09-09 11:39:13 +01:00
Laurent Cozic c9adccad4a Get NTP time working on Android 2020-09-09 10:56:17 +01:00
Laurent Cozic f41ba67e15 Improved ntp time 2020-09-09 00:34:27 +01:00
Laurent Cozic 1f70a76c7e Desktop: Fixes #3729: Fix lock issue when device does not have the right time 2020-09-08 23:57:48 +01:00
Cristi 5fe3732a38 All: Translation: Update ro.po (#3728) 2020-09-08 18:29:07 -04:00
Harris Arvanitis 445533cfcc All: Translation: Update el_GR.po (#3718) 2020-09-08 18:28:42 -04:00
Laurent Cozic a8e29249d6 Electron release v1.1.244 2020-09-08 01:03:29 +01:00
Laurent Cozic e4a3cbd2ff Increase minor version 2020-09-08 01:03:12 +01:00
Laurent Cozic 96b7ce9d50 Electron release v1.0.243 2020-09-08 00:57:35 +01:00
Laurent Cozic 2bbc1e7ecd Desktop: Fixes #3710: Fix applying tags to multiple notes 2020-09-08 00:49:58 +01:00
Laurent Cozic 83619b279d Desktop: Fixes #3697: Fixed copying link in Rich Text editor 2020-09-08 00:29:31 +01:00
Laurent Cozic 8b5a99d494 Desktop: Fixes #3553: Fixed viewer font size, in particular for inline code 2020-09-08 00:00:43 +01:00
Laurent Cozic 67d4123608 Desktop: Add log statement to try to fix issue #3536 2020-09-07 23:55:37 +01:00
Laurent Cozic a424e3c899 Desktop, Cli: Fixes #3689: Fixed note export when there are folders with non-existing parents. Also fixed long path issue on Windows. 2020-09-07 22:12:51 +01:00
Laurent 08d4b5a714 Mobile: Fixes #3022: Fix issue with action button disappearing in some contexts (#3702) 2020-09-07 17:42:16 +01:00
Laurent Cozic 68aefd5e4c Desktop: Rename menu item from "Export" to "Export all" to clarify what it does 2020-09-07 17:33:51 +01:00
Laurent Cozic 57d750bc9a All: Security: Disallow EMBED tags to prevent XSS vulnerability 2020-09-06 19:29:42 +01:00
Caleb John fbe966903b Desktop: Resolves #3560: Make codemirror the default code editor (#3703) 2020-09-06 16:28:23 +01:00
Jose Esteve 652748f969 Cli: Resolves #3711: Fix keytar library being loaded up in FreeBSD. (#3712)
Issue https://github.com/laurent22/joplin/issues/3711

This patch replaces the 'isLinux' check by a more restrictive version
which fixes the false positive in BSD systems. This was causing Joplin
not to load due to the lack of X11 in headless mode.
2020-09-06 15:20:38 +01:00
Naveen M V e108fdb1d8 Desktop: Fuzzy search (#3632) 2020-09-06 13:07:00 +01:00
Anjula Karunarathne a8296e2e37 Desktop: Add keyboard shortcut editor (#3525) 2020-09-06 13:00:25 +01:00
Laurent Cozic 0998fc0ad7 Doc: Update dontate page 2020-09-05 22:49:40 +01:00
Laurent Cozic d5f3e860b9 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-05 22:48:42 +01:00
Laurent Cozic 4e624f7db5 Doc: Added new sponsor 2020-09-05 22:28:28 +01:00
Anton Deriabin 5b697b7e16 Doc: Fixed wrong e2ee spec link (#3655) 2020-09-05 00:14:49 +01:00
Caleb John 30e0d69a74 Desktop: Load Codemirror css in index.html (#3673) 2020-09-05 00:02:20 +01:00
Caleb John 652816fd26 Desktop: Change codemirror default home and end to be visual line based (#3672) 2020-09-05 00:01:06 +01:00
Laurent Cozic 3a33e5f416 Electron release v1.0.242 2020-09-04 22:46:26 +01:00
Laurent Cozic 277dac5512 Desktop: Fixes sync target upgrade issue when custom TLS settings are used 2020-09-04 22:46:09 +01:00
Laurent Cozic 81d97d9f9d Update website 2020-09-04 19:34:43 +01:00
Laurent Cozic a4873cd40d Android release v1.0.340 2020-09-04 19:22:28 +01:00
Laurent Cozic 20cb2daf43 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-04 19:15:04 +01:00
Laurent Cozic e5b5250a91 Tools: Make it easier to create Android pre-releases 2020-09-04 19:11:46 +01:00
Laurent Cozic db7d617e2b Update website 2020-09-04 19:06:36 +01:00
Laurent Cozic a627884876 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-04 18:31:01 +01:00
Laurent Cozic ed30d09e07 ios-v10.0.53 2020-09-04 18:30:43 +01:00
Laurent Cozic 179e3f9aee Electron release v1.0.241 2020-09-04 18:25:04 +01:00
Laurent Cozic a67aedba35 Tools: Fixed changelog script 2020-09-04 18:24:53 +01:00
Laurent Cozic 199c411a7d CLI v1.0.167 2020-09-04 18:17:24 +01:00
Laurent Cozic 5cd7bb5bdb Electron release v1.0.240 2020-09-04 18:01:38 +01:00
Laurent Cozic 30b8f5e2aa Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-04 18:01:05 +01:00
Laurent Cozic 44f2842820 Android release v1.0.339-3 2020-09-04 17:28:18 +01:00
Laurent Cozic 569355a318 Mobile: Add startup screen to show progress of db migration 2020-09-04 17:07:57 +01:00
Laurent Cozic 8464e16d5d Doc: Added note on how to update Katex or Mermaid package 2020-09-02 22:54:58 +01:00
Laurent Cozic 874c1e3e82 Fixing mermaid script 2020-09-02 22:51:16 +01:00
Laurent Cozic 2530ecfc86 All: Fixes #3664: Fixed Katex font rendering 2020-09-02 22:48:24 +01:00
Laurent Cozic 6b49f1dfcc Desktop: Fixes #3618: Fix links within Mermaid documents 2020-09-02 22:44:24 +01:00
Laurent Cozic b1af25ea18 Electron release v1.0.239 2020-09-01 22:26:52 +01:00
Laurent Cozic 3086007a9c Electron release v1.0.238 2020-09-01 22:25:42 +01:00
Laurent Cozic bdfb6b97f5 Desktop: Fixes #3645: Improved handling of startup errors, and prevent window from being invisible when upgrading sync target 2020-09-01 22:25:23 +01:00
Laurent Cozic c01219e6be Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-09-01 20:55:12 +01:00
Laurent Cozic 743c11c279 Android release v1.0.338 2020-08-30 20:42:09 +01:00
Laurent Cozic 11646d1c21 Desktop: Added more logging info to sync target upgrade process 2020-08-29 19:12:02 +01:00
Laurent Cozic 797f4a9669 Electron release v1.0.237 2020-08-29 11:28:12 +01:00
Laurent Cozic 815775ad8f Linux: Fixes #3645: Prevent lock when restarting app 2020-08-29 11:27:13 +01:00
Eduardo Kimmel 085109288f All: Translation: Update pt_BR.po (#3668)
Updated some pt_br translations.
2020-08-28 17:43:30 -04:00
Alexander Knyazev c6cf0f3ba5 All: Translation: Update ru_RU.po (#3666)
Co-authored-by: Alexander Knyazev <a.knyazev@omprussia.ru>
2020-08-28 17:42:31 -04:00
rnbastos f9bdce7e24 All: Translation: Update pt_BR.po (#3642)
Update pt_BR translation.
2020-08-28 17:41:29 -04:00
Kourosh f8cf4db5db All: Translation: Update fa.po (#3637) 2020-08-28 17:40:33 -04:00
Laurent Cozic 14e6ae373f Electron release v1.0.236 2020-08-28 09:49:48 +01:00
jonath92 39bffd2790 Regression: Fixed OneDrive synchronisation (#3674) 2020-08-28 09:46:41 +01:00
Laurent f3cb903901 Doc: Mentioned that we don't accept pull requests created using an automated tool 2020-08-20 11:55:13 +01:00
Laurent Cozic abad1883bc Merge branch 'master' into dev 2020-08-19 14:30:36 +01:00
Laurent Cozic bb8770a967 Update website 2020-08-19 14:29:49 +01:00
Laurent Cozic c903947704 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-08-19 00:12:33 +01:00
Naveen M V 82e96840e9 All: When searching, weight notes using Okapi BM25 score (#3454) 2020-08-18 23:53:28 +01:00
Laurent Cozic e190d90832 Desktop: Fixed restarting portable app 2020-08-18 23:51:23 +01:00
Caleb John 0ae8d454ad Focus the editor whenever the user toggles the visible panes (#3646) 2020-08-18 22:26:57 +01:00
Laurent Cozic 77c7f966cf Electron release v1.0.235 2020-08-18 21:56:50 +01:00
Laurent Cozic 619fa1d607 Revert "Desktop, Mobile: Add support for media player for video and audio files"
Reverted as it now attempts to render note links as images. See:

https://discourse.joplinapp.org/t/joplin-for-windows-1-0-234-bug/10558?u=laurent

This reverts commit 13280ce1b3.
2020-08-18 21:52:00 +01:00
Laurent Cozic 157736ff7e Desktop: Fixed regression: Several menu items did not work anymore 2020-08-18 21:45:22 +01:00
Naveen M V 0b57d906f8 Doc: Update search engine doc (#3614)
Add documentation for search filters
2020-08-18 00:15:00 +01:00
Laurent Cozic 86bfdb5c79 Android release v1.0.337 2020-08-17 21:48:37 +01:00
Laurent Cozic fc7d34f79c Electron release v1.0.234 2020-08-17 21:44:40 +01:00
Matias Laporte 9d962f0328 All: Translation: Update es_ES.po (#3629) 2020-08-13 20:38:30 -04:00
Laurent Cozic 79e1a33b28 Fixed tabs 2020-08-08 10:21:25 +01:00
Caleb John 0eedae1f62 Desktop: Fixed vim mode issue where status bar was not visible (#3606) 2020-08-08 10:15:01 +01:00
Caleb John e1144c098e Desktop: Fixed scrolling issue when editing while searching in CodeMirror (#3593)
Only scroll to search matchs when the user changes the search or
explicitly changes the search index
https://discourse.joplinapp.org/t/codemirror-feedback/10397
2020-08-08 10:11:55 +01:00
Caleb John 5c5cb0f781 Desktop: Implement scroll-past-end on CodeMirror editor (#3589) 2020-08-08 09:55:10 +01:00
Laurent Cozic 656615b571 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-08-08 00:35:55 +01:00
jonath92 799a9e810d All: Resolves #1266: Add support for OneDrive for Business (#3433) 2020-08-08 00:35:30 +01:00
R3dError aa147bbcdc Desktop: Added attach file to menu bar (#3540) 2020-08-08 00:32:49 +01:00
alexchee 8c7a24282c All: Fixes #3591: Fixed sync fetching issue (#3599) 2020-08-08 00:30:11 +01:00
Naveen M V f99f3f8a6d All: Resolves #1877: Add search filters (#3213) 2020-08-08 00:13:21 +01:00
Laurent Cozic 29fbafdfff Mobile: Fixed issue when creating new notebook and going back 2020-08-07 02:03:33 +00:00
Laurent Cozic 3253146dae Merge branch 'master' into dev 2020-08-06 15:30:00 +01:00
Laurent Cozic 7e4ac0fd73 Tools: Add complexity rule 2020-08-05 23:16:51 +00:00
Laurent Cozic 60d77cb5ea ios-v10.0.52 2020-08-05 15:57:21 +01:00
Laurent Cozic 8299164964 Android release v1.0.336 2020-08-05 00:18:42 +01:00
Laurent Cozic 488393e75d Mobile: Fixes #3597: Fixed regression when saving a new notebook 2020-08-05 00:08:11 +01:00
Laurent Cozic c19f8c8035 Mobile: Fixes #3597: Fixed regression when saving a new notebook 2020-08-05 00:07:55 +01:00
Laurent Cozic b0b55718cc Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-08-04 23:00:38 +01:00
Laurent Cozic 5ade9ff2f6 Tools: Updated eslint and clarified comma-dangle rule 2020-08-04 23:00:11 +01:00
Allan Jacquet-Cretides e4cfb518ba Desktop: Resolves #3569: Show full folder name in mouse-over pop-up text (#3590) 2020-08-04 22:45:32 +01:00
Laurent Cozic 89864de1ff Tools: Added eslint radix rule 2020-08-04 22:36:50 +01:00
Laurent ee2a474611 Update .travis.yml 2020-08-04 22:31:59 +01:00
Caleb John 223caca0f5 Desktop: Enable CodeMirror keybindings (#3545) 2020-08-02 16:26:26 +01:00
Laurent Cozic ee358f70dd Desktop: Add version info to error screen 2020-08-02 16:21:30 +01:00
Laurent Cozic 0718828d60 Merge branch 'master' into dev 2020-08-02 16:12:11 +01:00
Laurent Cozic d13f54c2ce CLI v1.0.166 2020-08-02 15:03:57 +01:00
Laurent Cozic 90f7f99cd1 ios-v10.0.51 2020-08-02 15:01:39 +01:00
Laurent Cozic a273bbaeee Fixed Android build 2020-08-02 13:37:32 +01:00
Laurent Cozic 619b426689 Android release v1.0.335 2020-08-02 13:34:09 +01:00
Laurent Cozic 97c752a39e Fixed config 2020-08-02 13:16:41 +01:00
Laurent Cozic 7565f1cada Fixed mobile version build 2020-08-02 12:38:36 +01:00
Laurent 0c147236a3 All: Add mechanism to lock and upgrade sync targets (#3524) 2020-08-02 12:28:50 +01:00
Anjula Karunarathne 88f22fabf7 Desktop: Added KeymapService to manage keyboard shortcuts (#3252) 2020-08-02 12:26:55 +01:00
Thatcher Chamberlin 5f46d60c5e Desktop, Cli, Update Katex to v0.12.0 (#3571) 2020-08-02 12:24:03 +01:00
Jess cc8c200826 Desktop: Resolves #3529: Fix AppImage Icon (#3570) 2020-08-02 12:17:51 +01:00
Laurent 4485947b0f Desktop: Fixed copy, cut and paste in Rich Text editor (#3565) 2020-08-02 12:16:42 +01:00
Roman Musin 9f1a877f96 Android: remove hardcoded portrait screen orientation for share activity (#3418) 2020-08-02 12:14:56 +01:00
Laurent Cozic 13280ce1b3 Desktop, Mobile: Add support for media player for video and audio files
Co-authored-by: Bryan <bryan.r.gerlach@gmail.com>
2020-08-02 12:03:49 +01:00
Caleb John 7f73931530 Desktop: Fixes #3560: Modify the CodeMirror linter plugin to fix katex (#3582)
Rewrite the joplin mode to manually handle parsing.

This gives us more control over katex parsing and the ability to upgrade
in the future
2020-08-02 11:33:59 +01:00
Caleb John bbfed9bca8 Desktop: Codemirror: clean up list indent code (#3581) 2020-08-01 19:09:52 +01:00
Caleb John bab29cd582 Desktop: Toggle Editor rather than setting split mode on search (#3561) 2020-08-01 19:07:52 +01:00
Laurent Cozic baea44cbd6 Fixed mobile version build 2020-08-01 18:56:56 +01:00
Laurent Cozic ab0538df43 All: Security: Apply latest package security updates 2020-08-01 18:56:26 +01:00
Laurent Cozic 58d4a69053 Merge branch 'dev' of github.com:laurent22/joplin into dev 2020-08-01 18:21:42 +01:00
Laurent 9147b3061a Desktop: Hide completed to-dos in GotoAnything (#3580) 2020-08-01 18:17:40 +01:00
Laurent 1b0102f62c Update stale.yml 2020-08-01 18:15:17 +01:00
j-krl 471631933b CLI: Resolves #3217: Added link navigation shortcuts (#3275) 2020-08-01 17:57:45 +01:00
Laurent cd761932c1 Merge branch 'dev' into cli-shortcuts-ts 2020-08-01 17:50:03 +01:00
Laurent Cozic e63eee89ef Electron release v1.0.233 2020-08-01 15:27:30 +01:00
Laurent Cozic 4393ebbcc6 Desktop: Fixed potential crash when notebook does not have a title 2020-08-01 15:20:17 +01:00
Laurent Cozic ed82390a8d Desktop: Fixed toolbar button state when going from setting screen to main screen 2020-08-01 15:11:14 +01:00
Laurent Cozic 79e708779f Merge branch 'master' of github.com:laurent22/joplin 2020-08-01 14:49:31 +01:00
Laurent Cozic 98905f6892 Tools: Cleaned up and improve build config, and fixed TypeScript Watch high CPU usage 2020-08-01 14:48:56 +01:00
Retew 44e57c3959 All: Translation: Update ru_RU.po (#3579) 2020-07-29 23:35:43 -04:00
voltinus 35d48394ce All: Translation: Update pl_PL.po (#3577) 2020-07-29 23:32:24 -04:00
Laurent Cozic eb42a5f34b Mobile: Reduced auto-sync interval when opening app, and fixed Amazon S3 config 2020-07-28 22:47:24 +00:00
Laurent Cozic 729c8c6fac Electron release v1.0.232 2020-07-28 19:11:14 +01:00
Laurent Cozic 7a1707d864 Finished reverting hierarchical tag feature 2020-07-28 19:09:50 +01:00
Laurent Cozic 64d7603eed Revert "All: Added support for hierarchical/nested tags (#2572)"
This reverts commit e11e57f1d8.
2020-07-28 18:50:34 +01:00
Laurent Cozic 89e6b680a6 Revert "Desktop: Regression: Fix sort tags alphabetically in side-menu (#3489)"
This reverts commit 10ff43f4f0.
2020-07-28 18:49:34 +01:00
Helmut K. C. Tessarek da071a804c Update website 2020-07-27 13:27:45 -04:00
Helmut K. C. Tessarek 7833ca5ae6 https://joplin.cozic.net -> https://joplinapp.org 2020-07-27 13:26:17 -04:00
Mehrad Mahmoudian 44d49b57b9 fixed a typo and added checked checkbox in Markdown Guide (#3556)
* Doc: Fixed a typo in a markdown syntax of a link

* Doc: added an example of a checked checkbox

and added how the checkboxes would get translated when turned to HTML

* Doc: added a picture of a rendered markdown checkbox in Joplin
2020-07-27 13:19:11 -04:00
Laurent 9db150f8ff Update stale.yml 2020-07-27 11:06:45 +01:00
Laurent Cozic e2d3630783 Tools: Added sync target snapshots 2020-07-25 11:38:43 +01:00
Laurent Cozic cb1b5cae9f Update website 2020-07-24 19:46:27 +01:00
Laurent Cozic 3af5b31c1c Merge branch 'master' of github.com:laurent22/joplin 2020-07-24 19:44:33 +01:00
Laurent Cozic b6dafd6da6 Doc: Showcasing plugins as screenshots (#3549)
Co-authored-by: Mehrad Mahmoudian <m.mahmoudian@gmail.com>
2020-07-24 19:42:44 +01:00
Laurent Cozic d08b922632 Electron release v1.0.231 2020-07-24 18:02:12 +01:00
Laurent Cozic 9d4e250f6b Electron release v1.0.230 2020-07-24 17:45:14 +01:00
Laurent Cozic c19cc1b39a Merge branch 'master' of github.com:laurent22/joplin 2020-07-24 17:28:55 +01:00
Laurent Cozic 73bd6f9776 Update turndown 2020-07-24 17:28:28 +01:00
WhiredPlanck 6fef55398f All: Translation: Update zh_CN.po (#3542)
* [trans] Update zh_CN.po

* [trans] Give the specific names of AWS secret and AWS key
2020-07-24 11:58:09 -04:00
Laurent Cozic d209d5036b Desktop, Cli: Security: Fixed a path traversal vulnerability in clipper server API that could allow an attacker to read or write an arbitrary file (CVE-2020-15844) 2020-07-24 00:45:15 +00:00
Laurent Cozic 4be02bc33c Desktop: Fixed save issue in Rich Text editor when making a change to a note and quickly switching to a different notebook 2020-07-23 23:55:01 +00:00
Laurent Cozic d6daa34e0a Linter 2020-07-23 23:06:58 +00:00
Laurent Cozic 9cebbbe7cf Desktop, Cli: Fixed attachments being out of order when importing Enex file 2020-07-23 18:43:01 +01:00
Laurent Cozic 71e5304298 Desktop: Fixes #3534: Undoing changes multiple time on an existing note could result in a blank note 2020-07-23 19:56:53 +00:00
Laurent Cozic 8f8d11c9b3 Desktop: Fixes #3510: Note links would be broken after saving a note in Rich Text editor 2020-07-23 19:38:42 +00:00
Laurent Cozic 1cd86fd3ea Cli: Fixes #3548: Desktop-only scripts were incorrectly being loaded in CLI server tool 2020-07-23 19:04:04 +00:00
Laurent Cozic 7f1f5a8c3d Desktop: Fixes #3503: Editor window was no longer being resized with the main window 2020-07-22 23:26:45 +01:00
Caleb John 9dfb0642da Desktop: Split Codemirror setOptions into different effects (#3522) 2020-07-22 23:18:52 +01:00
Caleb John 0fa8dfa063 Desktop: Enforce that whitespace check for unindent checks the begining of a (#3515) 2020-07-22 23:17:49 +01:00
Caleb John 1d79dedf6d Fix architecture check to only search within machine details (#3512) 2020-07-22 23:16:42 +01:00
Caleb John a274a56e65 Desktop: CodeMirror: Change rootSize parameters to prevent collision with styles.editor (#3505) 2020-07-22 23:16:06 +01:00
Caleb John 44d3a4213f Desktop: Enable searching in editor rather than the viewer for CodeMirror (#3360) 2020-07-22 23:13:23 +01:00
Laurent Cozic e68eb196b7 Removed debug code 2020-07-22 19:09:20 +01:00
Laurent Cozic 4bef79cd71 Desktop: Fixes #3407: In some cases, changes made to an attachment would not be saved. Also added banner to show that an attachment is being edited 2020-07-22 19:03:31 +01:00
Laurent Cozic f3dc3602c8 Desktop: Fixes #3366: Revealing file in Windows did not work 2020-07-22 17:24:01 +01:00
Vaidotas Šimkus 17e140ba56 Api: Fixes #3539: Fixes nested tag API to handle calls with no 'fields' query key 2020-07-22 10:38:49 +01:00
Laurent Cozic 89d0575ccd All: Security: Upgrade packages to fix minor vulnerabilities 2020-07-21 22:22:58 +01:00
Helmut K. C. Tessarek ca0197a319 fix linter error (#3518) 2020-07-20 00:19:08 +01:00
Helmut K. C. Tessarek 62bc296abe Update translations 2020-07-19 15:18:42 -04:00
Gen Neko e58dc809ec All: Translation: Update ja_JP.po (#3526)
Translate new strings for the nested tag and note properties.
2020-07-19 14:41:40 -04:00
Arda Kılıçdağı abd57ad384 All: Translation: Update tr_TR.po (#3523)
Turkish translations updated
2020-07-18 13:42:48 -04:00
Tim Mundt bada9286d0 All: Translation: Update de_DE.po (#3517) 2020-07-17 19:34:14 -04:00
Roman Musin 3807317e66 Mobile: Increase max resource size to 100mb (#3431) 2020-07-15 18:29:16 +01:00
Vaidotas Šimkus 10ff43f4f0 Desktop: Regression: Fix sort tags alphabetically in side-menu (#3489) 2020-07-15 18:28:40 +01:00
Caleb John 282f6de1a9 Desktop: Load more CodeMirror modes for syntax highlighting (#3401) 2020-07-15 11:46:14 +01:00
alexchee 9a55afec01 All: Add support for AWS S3 synchronisation (Beta) (#2815) 2020-07-15 10:22:55 +01:00
Robert c8c4bb3245 Update nl_NL.po (#3498) 2020-07-15 10:14:21 +01:00
Chen Yuyang e1f831af62 Update translation zh_CN.po (#3490) 2020-07-15 10:13:39 +01:00
Laurent Cozic 657cebfda9 Desktop: Improved GotoAnything speed and made it safer
Previously we'd use the remove-markdown package to create the note
preview however this function would freeze on certain notes, and was
probably unsafe as it used regex to parse Markdown. Replaced this in
favour of Markdown-it along with htmlparser2 to strip all markup from a
note.
2020-07-14 23:27:45 +01:00
Laurent Cozic 7f1c25793a Desktop: Fixes #3449: Fixed style caching 2020-07-14 19:17:25 +00:00
Laurent Cozic b770ffda4d Desktop: Regression: Fixed adding a new sub-notebook to a notebook 2020-07-14 18:56:02 +00:00
Laurent Cozic d0b3e15999 Electron release v1.0.229 2020-07-14 15:33:20 +01:00
Laurent Cozic 20433b0282 Desktop: Fixed alarms on macOS 2020-07-14 15:32:49 +01:00
Caleb John 452b41de0f Desktop: Fixes #3440: Improve Markdown rendering in CodeMirror, in particular for math expressions (#3448) 2020-07-12 19:42:19 +01:00
Helmut K. C. Tessarek b69008225f Update translations 2020-07-12 14:33:09 -04:00
yaozeye b3a778e983 All: Translation: Update zh_TW.po (#3470) 2020-07-12 14:22:26 -04:00
yaozeye a57c6e9155 All: Translation: Update zh_CN.po (#3468) 2020-07-12 14:22:07 -04:00
Laurent Cozic 3fbfba2c03 Merge branch 'master' of github.com:laurent22/joplin 2020-07-12 19:20:32 +01:00
Laurent Cozic 8a5e6875f0 Desktop, Cli: Fixes #3473: Fix filename when exporting notebook as Markdown 2020-07-12 19:13:08 +01:00
Vaidotas Šimkus e11e57f1d8 All: Added support for hierarchical/nested tags (#2572)
The implementation uses / symbol as a nesting separator. I.e. tag/subtag is a nested tag, where tag is the parent tag and subtag is its child. Creating a tag named tag/subtag/subsubtag creates three tags, one for each level. The tags are associated using parent_id field.

In the app, viewing notes with a tag will also show all notes that are associated with any of the tag's descendant tags (same for the note count). Deleting a tag will also delete all its descendant tags.

In the desktop app the tags are shown nested just like the notebooks.
2020-07-12 18:09:07 +01:00
Laurent Cozic 073bd80f89 Electron release v1.0.228 2020-07-12 18:05:06 +01:00
Laurent Cozic e3aaee738a Desktop: Fixes #3482: Fixed regression when moving note to notebook from menu 2020-07-12 17:27:56 +01:00
Laurent Cozic f1b2b7b86b Desktop: Fixes #3481: Crash when applying tags to multiple notes from within another tag 2020-07-12 17:15:17 +01:00
Laurent Cozic e0a87d6253 Revert "All: Add support for sync target lock"
This reverts commit 51235f191d.

Not ready yet, moving to a branch
2020-07-12 16:38:54 +01:00
Laurent Cozic a7eae2e033 Update donate.md 2020-07-11 14:27:35 +01:00
Laurent Cozic 51235f191d All: Add support for sync target lock
The goal is to allow locking a sync target so that maintenance
operations, such as upgrading the target to a more efficient format,
can be done. For now, only the lock mechanism is in place, as a way to
evaluate it, and to see if it can cause any issue.
2020-07-10 23:42:03 +01:00
Laurent Cozic 003ead2511 Clean up 2020-07-10 19:54:29 +01:00
Laurent Cozic 8dc8527fdc CLI v1.0.165 2020-07-10 19:52:58 +01:00
Laurent Cozic 985dcc2605 Update stale.yml
30 days should be enough - either we tag the issue or it gets closed, and it's likely all issues will be checked by at least one mod within 30 days.
2020-07-10 18:02:35 +01:00
WhiredPlanck 4063cdba11 All: Translation: Update zh_CN.po (#3451)
* branch off from master

* fix typo and improve translations
2020-07-07 15:14:52 -04:00
WhiredPlanck c96c591fa9 All: Translation: Update zh_TW.po (#3450)
* Update zh_TW.po

* fix typo and improve translations
2020-07-07 15:14:27 -04:00
Laurent Cozic 4913fdb800 Electron release v1.0.227 2020-07-07 19:18:03 +01:00
Laurent Cozic 24bc7f153a Desktop: Fixes #3461: Fixed regression which could cause a crash after deleting a notebook 2020-07-07 19:17:33 +01:00
Laurent Cozic 8732c97dcd Desktop: Fixed GotoAnything rendering issue with HTML notes 2020-07-07 19:17:33 +01:00
Damien MASCRÉ e092eaef6f Updates to the french translation (#3466)
* Update french translation.

* Update french translation.
2020-07-07 15:09:30 +01:00
cadolphs 4ade1bf65f Desktop: Add approximate reading time to note statistics (#3373)
* First stab at a reading time calculator

* Use ceil instead of floor for rounding

* Fix variable names to camelCase

* Up wpm to 250, add source
2020-07-07 00:39:36 +01:00
Laurent Cozic 77a03599de Desktop: WYSIWYG: Fixed inserting date time and other content inside header 2020-07-04 12:17:30 +01:00
Laurent Cozic 9c057071b5 Electron release v1.0.226 2020-07-04 10:47:04 +01:00
Laurent Cozic ee3f4beeaf Desktop: Dev fix: Better handling of command props 2020-07-04 10:46:22 +01:00
Laurent Cozic 7035b1f9f6 Desktop: Dev fix: Added back title on header buttons 2020-07-04 10:46:22 +01:00
Deep Majumder 3aea55ee63 Tools: Generates SHA-256 sum of AppImage for Linux (#3410) 2020-07-03 22:46:20 +01:00
Laurent Cozic 28acb4eca6 Electron release v1.0.225 2020-07-03 22:43:19 +01:00
Laurent Cozic c63c6370b5 Desktop: Refactored command system
The goal is to make the command system more modular, so each command can
be defined as a single object that includes a declaration (name, label,
etc.) and a runtime (to execute the command, test if it should be
enabled, etc.)

Utility methods are provided to convert a command to a menu item or a
toolbar button, thus reducing duplicated and boiler plate code across the
codebase (often the menu item logic was duplicated in the toolbar
button logic and vice versa).

The goal is to make it easier to add new commands (and associated menu
item and toolbar buttons) and to call them from
anywhere. This is also useful for plugins, which can also easily define
new commands.

Could also allow creating a command palette.
2020-07-03 22:32:39 +01:00
Laurent Cozic 6046f40e45 Tools: Fixed tests following highlight.js upgrade (changed in HTML escape mode) 2020-07-03 22:30:33 +01:00
Caleb John 262159cf73 Desktop: Codemirror: Remove cancelled keys in favour of explicit keymaps (#3417) 2020-07-02 23:00:56 +01:00
Caleb John 8eb94bc8ab Desktop: Manually refresh codemirror whenever the window size changes (#3388)
* Manually refresh codemirror whenever the parent div size changes

* Set editor width through style rather than adding an extra property

* use Memo for editorStyle
2020-07-02 22:45:43 +01:00
WhiredPlanck a9390affaa All: Translation: Update zh_CN.po (#3430)
* Update zh_CN.po

* Correct typo

* Correct typo: NextCloud --> Nextcloud; Improved translation

* Improved translation (2)
2020-06-30 10:30:09 -04:00
Arda Kılıçdağı 66392b4e8a Yandex disk removed from supported WEBDAV clients (#3432)
Yandex.disk recently removed file upload support from WebDAV

https://ru.stackoverflow.com/questions/1043523/После-загрузки-файла-на-Яндекс-Диск-по-webdav-происходят-паузы-по-60-секунд-на-к
https://qna.habr.com/q/677787

So this makes Yandex.disk unusable at the moment.

Here's a similar issue, please see recent comments: https://github.com/PhilippC/keepass2android/issues/506

I've personally tried, and cannot even access to Yandex.disk at the moment through WebDAV.

This PR simply removes yandex.disk line from the ReadMe.

Thanks,
2020-06-30 10:26:30 -04:00
Laurent Cozic 3283f34c79 ios-v10.0.50 2020-06-28 20:17:13 +01:00
Laurent Cozic fd4e5d7d30 Android release v1.0.333 2020-06-28 19:57:33 +01:00
Laurent Cozic 5bbf9d87c2 Desktop: Fixes #3412: Fixed custom order when note title is changed 2020-06-28 19:10:35 +01:00
Laurent Cozic acf1ff6d1d Desktop, Cli: Fixes #3402: Fixed import of checkboxes in ENEX files 2020-06-28 18:55:47 +01:00
Laurent Cozic 05acc51054 Desktop, Mobile: Fixes #3281: Prevent code highlighting from freezing the app in some cases 2020-06-28 18:31:43 +01:00
Laurent Cozic eb8841379c Desktop, Cli: Fixes #2331: Only de-duplicate imported notebook titles when needed 2020-06-28 18:00:51 +01:00
Laurent Cozic d601575549 Doc: Updated sponsors 2020-06-27 10:05:19 +01:00
Arda Kılıçdağı 0d2f253218 All: Translation: Update tr_TR.po (#3415) 2020-06-25 22:29:35 -04:00
rnbastos 349d020da2 All: Translation: Update pt_BR.po (#3408) 2020-06-25 22:28:28 -04:00
Laurent Cozic 87ccb86f54 All: Reducer should not mutate state 2020-06-25 20:27:14 +01:00
Anjula Karunarathne 20482b2f14 Update README.md (#3414)
Fixed typo: Xfcxe -> Xfce
2020-06-24 23:54:16 +01:00
Laurent Cozic 47a05fb4ba Tools: Fixed build 2020-06-24 23:13:32 +01:00
Laurent Cozic ac0a89625a Tools: Fixed build issues 2020-06-24 23:11:42 +01:00
Caleb John a07638239b Tools: Use ensureDir instead of mkdir in utils (#3409)
* Use ensureDir instead of mkdir in utils

* switch to mkdirp
2020-06-23 21:38:52 +01:00
Laurent Cozic 5143870d3b Tools: Improve building and testing app on Windows 2020-06-22 23:06:47 +01:00
Gen Neko f61c4c1374 All: Translation: Update ja_JP.po (#3394) 2020-06-21 12:14:59 -04:00
Laurent Cozic 254735fcae Desktop: WYSIWYG: Fix undo issue 2020-06-21 14:37:04 +01:00
Laurent Cozic 44024371ff Merge branch 'master' of github.com:laurent22/joplin 2020-06-21 14:01:53 +01:00
Laurent Cozic be232fa34b Tools: Add no-array-constructor eslint rule 2020-06-21 13:58:54 +01:00
Helmut K. C. Tessarek 1a90165255 Desktop, Mobile: Fix link color for dark theme (#3391) 2020-06-21 00:47:19 +01:00
Helmut K. C. Tessarek 13417d15b7 Update en_US.po 2020-06-20 18:22:01 -04:00
Helmut K. C. Tessarek 9fe1f6acfc Update translations 2020-06-20 18:21:11 -04:00
Laurent Cozic 1899d86641 Electron release v1.0.224 2020-06-20 23:12:06 +01:00
Laurent Cozic 6ca63ca56b Merge branch 'master' of github.com:laurent22/joplin 2020-06-20 23:11:38 +01:00
Derviš T e796968ec0 All: Translation: Update bs_BA.po (#3390)
Finished translating new strings. Corrected the old ones that have changed since the last translation update.
2020-06-20 18:11:25 -04:00
Laurent Cozic 7b64c8dbe3 Desktop: Fixed API issue 2020-06-20 23:11:18 +01:00
Laurent Cozic 2377f7bc07 Desktop: Make sure search engine can keep working when index is corrupted 2020-06-20 19:21:35 +01:00
Laurent Cozic 47fdcef182 Electron release v1.0.223 2020-06-20 12:34:49 +01:00
Laurent Cozic d27b658392 Desktop: API: Improved error handling on service end-point 2020-06-20 12:34:05 +01:00
Laurent Cozic 07720ed6f8 Electron release v1.0.222 2020-06-20 12:21:31 +01:00
rnbastos a9cdecf599 Update pt_BR.po (#3382) 2020-06-20 12:21:05 +01:00
yaozeye c6b5a5c328 Update zh_CN.po (#3387) 2020-06-20 12:20:40 +01:00
Laurent Cozic e7f3aa3764 Updated British spelling 2020-06-20 12:18:41 +01:00
Laurent Cozic 89ca8e08d6 Desktop: API: Fixed externalEditWatcher/noteIsWatched call, fixed tests 2020-06-20 12:03:22 +01:00
Laurent Cozic 6350506ce7 Mobile: Fixes OneDribe login screen 2020-06-20 11:14:01 +01:00
Laurent Cozic d5ed611920 Update website 2020-06-20 02:57:32 +01:00
Laurent Cozic acc10ccac4 Electron release v1.0.221 2020-06-20 02:31:12 +01:00
Laurent Cozic 45160a2e73 Desktop: API: Add support for external editing from API 2020-06-20 02:30:09 +01:00
Laurent Cozic e38794171a Tools: Fix desktop build issue on Windows 2020-06-20 01:18:46 +01:00
Laurent Cozic c2d6da83c0 All: Fixes #3381: Prevent desktop.ini file from breaking sync lock 2020-06-20 01:15:56 +01:00
j-krl fd568b5300 interop unnecessary 2020-06-18 15:50:19 -06:00
Caleb John 77005fc495 Tools: Try to add codemirror types again (#3380)
* Try add codemirror type again

* Add global typedef for codemirror

* Add comment
2020-06-18 18:58:11 +01:00
Deep Majumder 0273e58783 Doc: Corrected info on supported Linux dsitros. (#3378)
Added list of supported desktop environments
2020-06-18 18:55:41 +01:00
Laurent Cozic 3e88a24753 Desktop: Reduce database logging statements 2020-06-17 23:46:47 +01:00
Laurent Cozic 1205908233 Revert "Desktop: Change codemirror to user import syntax (#3375)"
This reverts commit 3a7a068196.
2020-06-17 23:45:36 +01:00
Caleb John 3a7a068196 Desktop: Change codemirror to user import syntax (#3375) 2020-06-17 18:47:11 +01:00
Caleb John 845ecfe742 Desktop: Add default filename for jex export (#3034)
* Add default filename for jex export

* Restructure date as default filename
2020-06-17 18:35:13 +01:00
Laurent Cozic 53355aaad3 Clipper: Do not export invisible elements 2020-06-17 00:03:40 +01:00
Laurent Cozic 7cd0e25538 Merge branch 'master' of github.com:laurent22/joplin 2020-06-16 18:10:04 +01:00
Caleb John 2f15178ff6 Desktop: Remove auto-indent for in note html/xml for Code Mirror (#3374)
html/xml inside of a codeblock will still benefit from auto-indent
2020-06-16 13:00:58 +01:00
Caleb John a4b13be0d1 Desktop: Fix getLineSpan logic and list token regex logic (#3365)
- previously getLineSpan was included line text as a token (dumb
oversight)
- the regex was updated to include a space after a OL element (was
missing for some reason)
2020-06-16 13:00:17 +01:00
Caleb John 23ae4fb790 Desktop: Add swapLineUp and swapLineDown keys to Code Mirror editor (#3363) 2020-06-16 12:59:33 +01:00
Laurent Cozic cff036d08b Desktop: Do not expand the leaft notebook when following a link to a note 2020-06-15 22:59:42 +00:00
Laurent Cozic 7826cc0b03 Doc: Added sponsor 2020-06-15 23:03:09 +01:00
Alexander van der Berg 2bfa28a311 Doc: Fix sponsors table layout in the GitHub README.md (#3362)
The table was displayed correctly only on https://joplinapp.org/
2020-06-15 23:00:50 +01:00
Laurent Cozic 780c5c80ae Revert "Desktop: Fixes #3302: Prevent drag and dropping of text in editor as it can lead to data loss"
This reverts commit a75db94da5.

It turns out people often drag and drop text, so restoring the functionality.

See https://discourse.joplinapp.org/t/9406
2020-06-15 19:16:22 +01:00
Laurent Cozic fcd00b3212 Desktop, Cli: Fixed various bugs related to the import of ENEX files as HTML 2020-06-15 17:10:51 +01:00
Laurent Cozic 6a41d6e85a Cli: Allow importing ENEX files as HTML 2020-06-14 16:45:17 +00:00
Laurent Cozic 3733858145 Desktop, Cli: Fixed issue with importing resources from ENEX files 2020-06-14 16:26:35 +00:00
Laurent Cozic 95d8ee65a5 ios-v10.0.49 2020-06-14 17:04:10 +01:00
Laurent Cozic 8e57697b71 Android release v1.0.332 2020-06-14 16:28:11 +01:00
Helmut K. C. Tessarek c9c371b297 Update translations 2020-06-13 18:18:30 -04:00
Helmut K. C. Tessarek d4f794920e update de_DE.po 2020-06-13 18:17:07 -04:00
Helmut K. C. Tessarek 13b5ef36d7 Update translations 2020-06-13 17:47:15 -04:00
Laurent Cozic 83e0bac52a Electron release v1.0.220 2020-06-13 17:43:07 +01:00
Laurent Cozic 9943ae0fa5 Electron release v1.0.219 2020-06-13 17:41:20 +01:00
Laurent Cozic 4c95872826 Tools: Fixed build-translation tool on macOS 2020-06-13 17:41:02 +01:00
Laurent Cozic 4aef72572d Desktop: Added debug info to detect empty note issue 2020-06-13 17:17:32 +01:00
Laurent Cozic 126918be54 Mobile: Do not restore selection on undo/redo (unreliable) 2020-06-13 16:46:43 +01:00
Laurent Cozic 1dc4516efc Revert "Mobile: Refactored and made dialog boxes more reliable"
This reverts commit f432734338.

This new package has its own glitches and doesn't look good
when button labels are too large. So reverting to the less
glitchy package.
2020-06-13 16:20:59 +01:00
Laurent Cozic 9a9cfbd130 Mobile: Resolves #2595: Add undo/redo support 2020-06-13 16:20:18 +01:00
Rodgco 341c9ba64b All: Translation: Update pt_BR.po (#3358) 2020-06-10 22:08:07 -04:00
Laurent Cozic f432734338 Mobile: Refactored and made dialog boxes more reliable 2020-06-10 22:12:18 +01:00
Laurent Cozic b7f5f848f2 All: Refactored themes to allow using the same ones in both desktop and mobile version
Will also allow using them when exporting HTML or PDF from CLI.
2020-06-10 22:08:59 +01:00
Laurent Cozic d80cf6bf37 Mobile: Made saving notes more reliable 2020-06-09 23:30:32 +00:00
Laurent Cozic 31bce2e644 Mobile: Fixed issue with resources not being downloaded after metadata has been decrypted 2020-06-09 19:56:48 +00:00
Laurent Cozic faabd17fc6 Desktop: Fixed issue with setting filename for edited attachments 2020-06-09 19:15:43 +00:00
Laurent Cozic 4c4ed60cfb Merge branch 'master' of github.com:laurent22/joplin 2020-06-08 18:49:16 +01:00
Laurent Cozic be1895a080 Clipper: Fixes #3241: Handle certain special cases of ordered lists 2020-06-08 18:44:13 +01:00
Laurent Cozic b81b6135f6 Clean up unused optional parameter 2020-06-08 09:05:03 +01:00
Laurent Cozic 583ac7960b Mobile: Dev fix: Add missing key 2020-06-08 09:02:14 +01:00
Laurent Cozic b749bb60fc Merge branch 'master' of github.com:laurent22/joplin 2020-06-08 09:02:04 +01:00
Roman Musin 2c6a298758 Android: Fixes #3010: Request permissions if needed when exporting profile (#3202) 2020-06-08 09:01:11 +01:00
Laurent Cozic 42544cc63b Mobile: Reduce side menu edge hit width
Due to this bug:

https://github.com/react-native-community/react-native-side-menu/issues/153

After rotating the device, the edge hit area is too large, more than 50%
of the note in some cases, which makes it difficult to scroll the note
or zoom.
2020-06-08 08:49:24 +01:00
Roman Musin d2b81d221b Mobile: Fixes #3343: Fixed issue when creating note then switching notebook (#3347) 2020-06-08 08:40:52 +01:00
Laurent Cozic 618d8723d1 Android release v1.0.331 2020-06-08 07:53:49 +01:00
Laurent Cozic 8058d3f728 Removed debug code 2020-06-08 07:43:09 +01:00
Laurent Cozic 0bc10acf02 Mobile: Fixes #3344: Fixed regression that would cause links in notes to open within app itself 2020-06-08 07:41:04 +01:00
Laurent Cozic e5866e8aa6 ios-v10.0.48 2020-06-07 14:54:34 +01:00
Laurent Cozic b4e907ae77 Android release v1.0.330 2020-06-07 14:24:21 +01:00
Laurent Cozic ff23248017 Doc: Updated sponsors 2020-06-07 13:31:43 +01:00
Laurent Cozic ac0d01b724 Doc: Fixes #3330: Fixed various links in doc 2020-06-07 13:02:58 +01:00
Laurent Cozic 40adbc5e9e Desktop: Resolves #3333: Improved escaping of Markdown titles in links 2020-06-07 12:55:40 +01:00
Laurent Cozic f36e0c2513 All: Fixes #3334: Prevent notebook to be the parent of itself 2020-06-07 12:47:43 +01:00
Laurent Cozic 5be8c2cdcf Electron release v1.0.218 2020-06-07 11:02:14 +01:00
Laurent Cozic e915549f6d Merge branch 'master' of github.com:laurent22/joplin 2020-06-07 11:02:02 +01:00
Laurent Cozic 30b3f3190b Desktop: Regression: Fixed issue with note being needlessly reloaded in WYSIWYG editor 2020-06-07 11:01:33 +01:00
TheOnlyTrueJonathanHeard 3f7390d104 Linux: Allow downloading pre-release versions from install script (#3335) 2020-06-07 10:00:06 +01:00
Caleb John 005bfe799c Desktop: Fixes #3337: Fixed regression when applying theme for Ace Editor (#3338) 2020-06-07 09:59:00 +01:00
Laurent Cozic c9f1715899 Tools: Fixed formatting of git changelog 2020-06-06 16:31:31 +01:00
Laurent Cozic faf5eac806 Tools: Add link to release page when creating desktop release 2020-06-06 16:04:47 +01:00
Laurent Cozic 9c5ab41b05 Electron release v1.0.217 2020-06-06 16:03:03 +01:00
Caleb John a8c8539e7a Desktop: Add option to choose Code Mirror as code editor (#3284) 2020-06-06 16:00:20 +01:00
Laurent Cozic a3153f1c9f Desktop: Fixes #3331: Fixed note list context menu 2020-06-06 15:47:02 +01:00
Laurent Cozic f23ab37a11 Doc: Added Ringing Supply sponsor 2020-06-06 15:32:36 +01:00
Laurent Cozic 334da21a3b Tools: Apply linter 2020-06-06 10:21:21 +01:00
叡山电车 4a7c1f54d2 update zh_cn translation (#3332) 2020-06-06 10:10:41 +01:00
Naveen M V 643b06ffa7 Tools: Rewrite randomly failing test (#3328) 2020-06-05 16:05:47 +01:00
Laurent Cozic 0f4a781df0 Mobile: Fixes #3240: Fix geolocation
Co-authored-by: Roman Musin <musinrr@gmail.com>

Squashed commit of the following:

commit c3916ee544d2b59e6b0c760366a9a2b5f821b029
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Jun 5 00:01:18 2020 +0100

    Fixed for iOS

commit 959a8b59d1
Author: Roman Musin <musinrr@gmail.com>
Date:   Thu Jun 4 21:56:43 2020 +0100

    Initialize keychain service when starting mobile app

commit 2b322352ed
Author: Roman Musin <musinrr@gmail.com>
Date:   Thu Jun 4 21:32:40 2020 +0100

    Mobile: fix geolocation
2020-06-05 00:08:09 +01:00
Georg Maubach d6cc84aabd Doc: New Idea: Separate Windows For Panes (#3271)
Joplin has 4 panes: side bar, notes list, code and view. Change joplin in a way that these parts can be different windows. Thus it is possible to put these windows on different screens for more space and better overview.
2020-06-04 19:29:28 +01:00
Roman Musin 33ad0dce15 Android: Resolves #2896: Enable sharing to Joplin on Android (#2870) 2020-06-04 18:40:44 +01:00
Shotaro Yamada 949c92f6d6 Desktop: Resolves #2614: Unindent empty list markup on Enter (#2772) 2020-06-04 18:36:10 +01:00
Arda Kılıçdağı 48098b5c06 Update tr_TR.po (#3327) 2020-06-04 18:34:30 +01:00
Laurent Cozic afcfb0e341 Tools: Disabled tests that are randomly failing 2020-06-04 18:26:42 +01:00
Laurent Cozic a1364a621a Tools: Apply linter rules 2020-06-04 18:24:11 +01:00
Laurent Cozic 4113252f18 Tools: Build TypeScript in pre-commit to check for any error 2020-06-04 18:22:21 +01:00
Roman Musin 386d11f51a Doc: Fix iOS log file name format is not rendered to html (#3326) 2020-06-04 11:02:01 +01:00
Laurent Cozic 39a506ad52 Desktop: Fixes #3324: Attaching an image, then cancelling the resize dialog, would crash the app 2020-06-04 09:08:13 +01:00
Laurent Cozic d9c266e3f1 Merge branch 'master' of github.com:laurent22/joplin 2020-06-04 07:55:13 +01:00
Laurent Cozic f4092c0824 Desktop: Dev fix: Only disable editor toolbar in preview mode
Reverts 468261906a

Disabling the toolbar when the editor is not in focus means it
was disabled when trying to click on one of the button, because
the editor loses focus before the click event is processed.
2020-06-03 23:59:45 +01:00
Laurent Cozic 4fd20b1c5a Merge branch 'master' of github.com:laurent22/joplin 2020-06-03 23:55:29 +01:00
Laurent Cozic 0d5586b379 Desktop: Fixes #3227: Fix styling of note title in exported PDF and print 2020-06-03 23:55:08 +01:00
Laurent Cozic da77de0a08 Desktop: Fixes #3287: Disable middle-clicking external URLs, as they would open inside the application 2020-06-03 18:34:00 +01:00
叡山电车 dd34b155b4 Desktop: Fixes #3170: Always make the first item selected in Goto Anything (#3181) 2020-06-03 18:01:17 +01:00
Laurent Cozic 26ce102113 Desktop: Resolves #2773: Add support for system keychain to save sensitive settings (#3207) 2020-06-03 17:07:50 +01:00
叡山电车 5082181c49 Desktop: Fixes #3153: Make GotoAnyting work with East Asian charactors (#3180) 2020-06-03 17:06:14 +01:00
Laurent Cozic 0ee370303c Update geolocalisation info on French translation 2020-06-03 16:54:56 +01:00
jtagcat 720494d870 Doc: install_and_update: document --silent (#3262) 2020-06-03 16:43:47 +01:00
TheOnlyTrueJonathanHeard cfe1911723 All: Resolves #173: Upload attachments > 4 MB when using OneDrive (#3195) 2020-06-03 14:29:47 +01:00
lscolombo b2318b1f9f Doc: Changed favicon.ico for latest Joplin logo (#3321)
Co-authored-by: lscolombo <lucianasoclolombo@gmail.com>
2020-06-03 14:25:00 +01:00
Laurent Cozic 560db37025 Tools: Added prefer-default-export eslint rule 2020-06-02 20:13:15 +00:00
Laurent Cozic dd557f66a5 Desktop: Create new notes with minimum set of properties to prevent a few minor bugs 2020-06-02 22:27:36 +01:00
Laurent Cozic 0603f179cc Update translations 2020-06-02 19:40:28 +00:00
Laurent Cozic 21fcaf621d Tools: Improve how translations are built to make sure no translation is missed 2020-06-02 19:33:08 +00:00
Laurent Cozic 794c8dd051 Update translations 2020-06-02 18:36:22 +00:00
Laurent Cozic f020b571da Update website 2020-06-03 11:41:02 +01:00
Laurent Cozic 071ea5854f Desktop: Resolves #279: Add support for editable resources (#3305)
* Add support for editable resources

* Fixed handling of resource paths

* Add delay before saving resource

* Delete temp files and stop watching when switching notes

* Handle sync when resource has been edited

* Handle resource conflicts

* Refactoring and handle conflicts from edit watcher

* Added test unit for conflict handling when deleting resource

* Trying to fix Travis-ci test units

* Fixed typo

* Update TinyMCE.tsx

* Update AsyncActionQueue.ts
2020-06-02 22:43:06 +01:00
Laurent Cozic bfec890632 Update AsyncActionQueue.ts 2020-06-02 22:35:41 +01:00
Laurent Cozic 3bb9d2efd6 Update TinyMCE.tsx 2020-06-02 22:35:05 +01:00
Laurent Cozic e117b6f732 Fixed typo 2020-06-02 17:50:43 +01:00
Laurent Cozic 710026c8ac Fixed typo 2020-06-02 17:50:24 +01:00
Laurent Cozic 79c45af0d5 Merge branch 'master' into editable_resources 2020-06-02 17:32:21 +01:00
Laurent Cozic a75db94da5 Desktop: Fixes #3302: Prevent drag and dropping of text in editor as it can lead to data loss 2020-06-01 21:30:51 +00:00
Laurent Cozic 468261906a Desktop: Fixes #3298: Fixed shortcut to focus Note List when editor is in focus 2020-06-01 21:24:14 +00:00
Laurent Cozic 3f1c9c989b Desktop: Fixes #3286: Disable editor toolbar when editor is not in focus 2020-06-01 21:01:10 +00:00
叡山电车 3b40de1962 Desktop: Fixes #3171: Fixed issue with accentuated letters in GotoAnything (#3183)
* fix #3171

* fix problem when searching with diacritics
2020-06-02 16:57:24 +01:00
lscolombo 2dda1c82c5 All: Translation: Update es_ES.po (#3316)
Added translations  and corrected others marked as 'Needs work'

Co-authored-by: lscolombo <lucianasoclolombo@gmail.com>
2020-06-01 23:47:30 -04:00
dsp77 4bc4d41728 All: Translation: Update de_DE.po (#3315)
* Added German translations

- Added missing translations
- Motified a few translations
- There is the question whether to translate the English "theme" to a
German word or keep its English version.

* Adjusted translation
2020-06-01 23:45:46 -04:00
Gen Neko c8c160d912 All: Translation: Update ja_JP.po (#3314)
* All: Translation: Update ja_JP

* Translate new strings

* Explicitly specify an access key for menu items

* Fix an error in the previous commit
2020-06-01 23:43:37 -04:00
Fathy AR 99354f7dbe All: Translation: Update id_ID.po (#3309) 2020-06-01 23:43:02 -04:00
Laurent Cozic 279310f9a5 Tools: Fixed Linux build issue due to icon error (#3311) 2020-06-01 10:19:16 +01:00
Laurent Cozic d0de79bffa Trying to fix Travis-ci test units 2020-05-31 21:07:24 +01:00
Laurent Cozic fbd42726c0 Added test unit for conflict handling when deleting resource 2020-05-31 20:22:55 +01:00
Laurent Cozic dfe02fbe96 macOS: Improved appearance of application icon 2020-05-31 17:50:41 +01:00
Laurent Cozic a8cffb9ac8 Revert "macOS: Improved appearance of application icon"
This reverts commit 334347abcf.
2020-05-31 17:46:19 +01:00
Laurent Cozic bdbf2fe583 Refactoring and handle conflicts from edit watcher 2020-05-31 17:43:51 +01:00
Laurent Cozic 36776cd615 Handle resource conflicts 2020-05-31 16:57:16 +01:00
Laurent Cozic 1852d9291d Handle sync when resource has been edited 2020-05-31 00:31:29 +01:00
Laurent Cozic 0e5a0fdbe5 Delete temp files and stop watching when switching notes 2020-05-30 17:49:29 +01:00
Laurent Cozic 7e59c40091 Add delay before saving resource 2020-05-30 17:10:25 +01:00
Laurent Cozic 53eba3f062 Fixed handling of resource paths 2020-05-30 15:28:42 +01:00
Laurent Cozic 334347abcf macOS: Improved appearance of application icon 2020-05-30 15:12:32 +01:00
Laurent Cozic e43e3c198a Add support for editable resources 2020-05-30 13:25:05 +01:00
Ron Alleva a8b8da4732 Doc: Update the faq for VSCode and Sublime (#3295)
This updates the sublime text and VSCode commands to add options which
make them wait before closing. This is borrowed from how you set a
different editor for git commit messages, described by github here:
https://help.github.com/en/github/using-git/associating-text-editors-with-git

This should address #2425
2020-05-29 10:04:44 +01:00
Helmut K. C. Tessarek ea57f5655c Update website 2020-05-28 22:31:55 -04:00
Helmut K. C. Tessarek 68496bd1a1 terminal.md: clarify install methods 2020-05-28 22:30:55 -04:00
Helmut K. C. Tessarek 097d4d5735 Update translations 2020-05-27 21:06:33 -04:00
Ivan Fadila Putra 89224c8f88 All: Translation : Add bahasa indonesia (id_ID.po) (#3246)
* Translation : translate to bahasa indonesia

* fix(translation) : change to one letter

* fix(translation) : consistency N -> T

* rm(unused) : remove unused files
2020-05-27 21:04:27 -04:00
yaozeye 22c0a219aa All: Translation: Update zh_CN.po (#3288)
Translation added, error fixed & expression improved.
2020-05-27 21:00:09 -04:00
Helmut K. C. Tessarek 9eed42cea0 Update website 2020-05-27 20:46:53 -04:00
Helmut K. C. Tessarek be24cbed2d clarify, which install methods are supported/unsupported 2020-05-27 20:46:32 -04:00
Helmut K. C. Tessarek aef3e0aead Update website 2020-05-27 20:35:57 -04:00
Helmut K. C. Tessarek 7a06a41502 update section: install terminal application 2020-05-27 20:33:56 -04:00
Laurent Cozic 03948d185d Merge branch 'master' of github.com:laurent22/joplin 2020-05-27 17:22:13 +01:00
Laurent Cozic 40d39d6268 Desktop: Resolves #51: Add way to manually order notes by dragging them (#3235)
* Allow custom sorting

* Implement UI

* Set order from message box

* Fixed mistake

* Update NoteListItem.tsx

* Desktop: Fixed date popup dialog overflow issue inside info dialog
2020-05-27 17:21:46 +01:00
Anjula Karunarathne 66f1506429 Documentation: Fixed some typos in COTRIBUTING.md (#3277)
Fixes some typos and a broken anchor link in `CONTRIBUTING.md` file
2020-05-27 16:54:34 +01:00
j-krl f19f148297 word choice 2020-05-25 20:18:13 -06:00
j-krl 79c6eb5503 Added to docs and rewrote LinkSelector as ts file 2020-05-25 20:14:38 -06:00
j-krl 1204bed80a Merge branch 'cli-shortcuts-ts' of https://github.com/j-krl/joplin into cli-shortcuts-ts 2020-05-25 20:10:04 -06:00
j-krl dc91b1f7d6 Added to docs and rewrote LinkSelector as ts file 2020-05-25 20:09:53 -06:00
j-krl 66dc2b33de Added to docs and rewrote LinkSelector as ts file 2020-05-25 20:00:16 -06:00
Laurent Cozic c97c337c79 Desktop: Fixed date popup dialog overflow issue inside info dialog 2020-05-25 17:37:37 +01:00
Laurent Cozic 0f7deeeac1 Desktp: Put back Edit in External Editor button 2020-05-25 11:37:45 +01:00
Laurent Cozic 8c338675d2 Desktop: Fixes #3267: Fixed issue with invalid image paths when config path contains spaces 2020-05-25 09:52:10 +01:00
Laurent Cozic b126c761cd Desktop: Fixed portable app issue with resource paths 2020-05-25 00:30:29 +01:00
Chillu1 d02513bb70 All: Translation: Update pl_PL.po (#3268) 2020-05-24 16:13:40 -04:00
Laurent Cozic 68e8d69d04 Tools: Trying to use "npm run dist" on CI 2020-05-24 15:27:30 +01:00
Laurent Cozic 4eb680d675 Electron release v1.0.216 2020-05-24 15:06:48 +01:00
Laurent Cozic 068dbfffd8 Revert "Desktop: Fixes #3260: Fixed image loading issue in WYSIWYG on portable app"
This reverts commit 2c115cd074.

Reason: Fixed is not right and needs further testing on portable release
2020-05-24 15:05:38 +01:00
Laurent Cozic d9ec2efa4b Merge branch 'master' of github.com:laurent22/joplin 2020-05-24 15:05:08 +01:00
Laurent Cozic 1c90e9dd7d Electron release v1.0.215 2020-05-24 15:04:33 +01:00
j-krl 811942d45e Merge branch 'cli-shortcuts' of https://github.com/j-krl/joplin into cli-shortcuts 2020-05-24 03:20:44 -06:00
j-krl dbde239a25 formatting 2020-05-24 03:20:05 -06:00
j-krl ab3ba3e2ca formatting 2020-05-24 03:11:45 -06:00
j-krl 79e77b5a10 removed personal comments 2020-05-24 02:44:24 -06:00
j-krl c3395133c9 automatic page scrolling, docs updated 2020-05-24 02:38:14 -06:00
j-krl b1d073cdeb next/prev link index is buggy on page change 2020-05-23 21:09:22 -06:00
Laurent Cozic 2c115cd074 Desktop: Fixes #3260: Fixed image loading issue in WYSIWYG on portable app 2020-05-23 23:30:18 +01:00
Laurent Cozic c99bd27e4d Desktop: Fixes #3259: Fixed inserting templates into existing notes 2020-05-23 23:06:08 +01:00
j-krl 25d723b373 switched to class based implementation 2020-05-23 07:23:55 -06:00
Laurent Cozic 0cfceab151 Desktop: Fix undo issue when loading new note 2020-05-23 00:14:26 +01:00
Laurent Cozic 65a0e056c7 Merge branch 'master' of github.com:laurent22/joplin 2020-05-23 00:01:31 +01:00
Eike b27a215c7f All: Translation: Update de_DE.po (#3243)
* Updated German translation
 - Changed translation for Fail-safe from Störsicher to Fehlersicher

* Shorter WYSIWYG compatibility hint as per #3244
2020-05-22 17:49:54 -04:00
j-krl e9783d050b I'm going to have to rewrite this entire thing... 2020-05-22 15:26:42 -06:00
j-krl e1be1ead86 big link doesn't work but regular link does 2020-05-22 06:39:08 -06:00
j-krl b129bed69f installed open package 2020-05-22 06:06:28 -06:00
j-krl 265ad50ce4 app 2020-05-22 05:50:56 -06:00
j-krl 3e2570601f app-gui 2020-05-22 05:48:27 -06:00
Laurent Cozic 05513e67d2 Merge branch 'master' of github.com:laurent22/joplin 2020-05-22 10:57:52 +01:00
Kaustubh Sharma 34e4164e2f Docs: Update ideas.md (#3247)
spelling mistake corrected
2020-05-22 09:57:32 +01:00
Laurent Cozic e4123b4ad9 Doc: Updated list of dependencies 2020-05-21 22:40:01 +00:00
Laurent Cozic ee6325e3c2 Electron release v1.0.214 2020-05-21 17:12:37 +01:00
Laurent Cozic a2fce031a2 Desktop: Dev fix: Fixed TypeScript 2020-05-21 17:12:18 +01:00
Laurent Cozic 2de30f8b82 Electron release v1.0.213 2020-05-21 16:09:46 +01:00
Laurent Cozic f1dbc1d41c Desktop: Improved handling of dark and light theme auto-switch 2020-05-20 23:57:59 +00:00
Laurent Cozic a96734f5be Revert "Tools: Added eslint rule arrow-parens"
This reverts commit 0b6f5581f0.

It causes too many conflicts with pull requests.
2020-05-21 09:14:33 +01:00
Laurent Cozic b83eee751f Destkop: Fix selection-related issues 2020-05-21 08:17:08 +01:00
Laurent Cozic 49451dba20 Desktop: Resolves #2665: Add support for system theme auto-switching 2020-05-21 00:47:38 +01:00
Laurent Cozic 3830f36c0b Electron release v1.0.212 2020-05-21 00:20:40 +01:00
Roman Musin 9f7eeb0510 Mobile: Resolves #2669: When attaching a file insert it at the current cursor position (#3189)
* When attaching an image/resource insert it at the current cursor position

* Correct argument order

* Address code review comments

* Another code review comment

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-20 17:46:01 +01:00
Laurent Cozic 58396ea5ce Mobile: Dev fix: Added remove-markdown package 2020-05-20 17:40:38 +01:00
Laurent Cozic b1bb470b0a CLI: Disable support for HTML export for now as it does not work 2020-05-20 17:31:41 +01:00
Laurent Cozic 0b6f5581f0 Tools: Added eslint rule arrow-parens 2020-05-20 17:16:43 +01:00
Laurent Cozic c34f762507 Doc: Removed GSoD link 2020-05-20 00:27:17 +00:00
Laurent Cozic 9eac63c021 Desktop: Made sidebar chevrons consistent 2020-05-20 00:21:18 +00:00
Laurent Cozic 1fec7d5558 Tools: Added rule no-new-func 2020-05-20 00:17:09 +00:00
Laurent Cozic 5eb084fd3b Desktop: Fixed issue with the editor showing previous note when it should show nothing 2020-05-20 00:13:59 +00:00
Laurent Cozic a99db36578 Desktop: Fixed two way scrolling issue in Markdown editor 2020-05-19 23:51:00 +00:00
Laurent Cozic bec8a2e7d1 Electron release v1.0.211 2020-05-20 09:38:27 +01:00
Laurent Cozic 38ced8cb09 Desktop: Dev fix: TypeScript error 2020-05-20 09:38:14 +01:00
Laurent Cozic 8eff3f5616 Electron release v1.0.210 2020-05-20 09:10:50 +01:00
Laurent Cozic 6f8332bad1 Desktop: Fixes #3228: Markdown editor would not scroll in sync with viewer in some cases 2020-05-20 01:16:03 +01:00
Laurent Cozic 01e0c0c21f Desktop: Made Markdown editor default again 2020-05-20 00:59:12 +01:00
Laurent Cozic 7a1eecc815 Desktop: Fixes #3200: Fixed infinite rendering loop, which would cause the app to crash (white window) 2020-05-20 00:58:35 +01:00
Laurent Cozic bec91863e2 All: Fixes #3234: Sync would fail in some cases due to a database error 2020-05-19 23:17:56 +01:00
Ayush Jain 341b763088 Desktop: Resolves #2883: Themes switched for more appealing text highlighting (#3192)
* conflicts fixed and changes made to aceEditor.tsx

* theme imported

* theme imported
2020-05-18 11:30:29 +01:00
Laurent Cozic e0721493e9 Electron release v1.0.209 2020-05-17 18:07:54 +01:00
Laurent Cozic 2d467f7fa5 CI: Upgrade required Node version to 10 2020-05-17 18:07:44 +01:00
Laurent Cozic 23ecbfcb3a Electron release v1.0.208 2020-05-17 16:54:23 +01:00
Laurent Cozic f8ad782991 Desktop: Fixes #3219: Fix notebook associated with note when doing search, and expand correct notebook 2020-05-17 16:45:27 +01:00
Laurent Cozic c2684a8149 Desktop: Added more info on how to switch to Markdown editor 2020-05-17 16:29:55 +01:00
Laurent Cozic 4e7c6b0aea Update welcome note 2020-05-17 16:00:45 +01:00
Laurent Cozic c568f5b33c Desktop: Resolves #3137: Switch to Font Awesome as icon library 2020-05-17 15:34:42 +01:00
Laurent Cozic e85d4fca5d Desktop: Moved note-related toolbar button next to tag bar 2020-05-17 14:01:42 +01:00
Naveen M V d9601f3136 Desktop: Dev fix: Remove redundant handleHistory call. (#3216)
handleHistory calls have been moved out of the switch statement.
2020-05-16 13:42:27 +01:00
Laurent Cozic 3ee5deb9f3 Update website 2020-05-16 13:31:29 +01:00
Laurent Cozic 8bc92e88df Doc: Added sponsors 2020-05-16 13:30:54 +01:00
anirudh murali ebe06c9c38 Desktop: Fixes #2865: Make sidebar resizable when note list is not displayed (#2895)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-15 12:20:56 +01:00
Naveen M V b3f32ffc59 Desktop: Resolves #2409: Add note history (back/forward buttons) (#2819) 2020-05-15 12:13:42 +01:00
Laurent Cozic ecc50790ed Desktop: Refactor: Minor refactoring following counter feature update in a09c7b72c7 2020-05-15 11:52:59 +01:00
RedDocMD a09c7b72c7 Desktop: Fixes #3009: Word/character counter includes Markdown syntax and HTML tags (#3037)
* Updated commit

* Update package.json

* Update package.json

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-15 11:28:31 +01:00
roman-r-m 7d767cf0c9 Mobile: Resolves #2327: Handle back button when sort popup is open (#3187) 2020-05-14 16:03:13 +01:00
Caleb John b5fc8e7fc1 Merge pull request #3012 from Rishgod/theme-bold
Desktop: Changing bold-text preview color for Aritim-dark theme
2020-05-13 17:55:09 -06:00
zawnk 91ec0dce37 Minor type in German translation (#3208) 2020-05-13 17:33:27 +01:00
Laurent Cozic 1aa2786ba0 CLI v1.0.164 2020-05-13 16:32:15 +01:00
Laurent Cozic 3265fafd76 Cli: Improve handling of encrypted items 2020-05-13 16:28:54 +01:00
roman-r-m 17fd8ee504 Mobile: Fixes #2685: Fix quick actions (#2796)
* Fix quick actions

* Receive quick actions when the app is cold-launched

* Force side menu close before creating quick note

* Fix react warning: Can't perform a react state update on an unmounted component

The warning was:
Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.
    in NoteScreenComponent (created by Connect(NoteScreenComponent))
    in Connect(NoteScreenComponent) (at app-nav.js:74)

* Fix auto title generation for quick notes.

The previous version created a new provisional note but then while handling NAV_BACK at reduxSharedMiddleware:35 the list of provisional note ids was cleared so when NoteScreenComponent was being mounted later the note was no longer considered provisional and Joplin would not generate the note title from its contents.

* Check for quick action data to be present before processing.

For some reason sometimes it gets called with null.
2020-05-13 11:39:16 +01:00
Laurent Cozic 05adb06aeb Desktop: WYSIWYG: Allow pasting images in editor 2020-05-11 19:26:04 +01:00
Laurent Cozic dacf6377ae Desktop: WYSIWYG: Fixed UI translation issue for certain languages 2020-05-11 18:59:23 +01:00
Laurent Cozic fa76c5db8d Desktop: Upgraded to Electron 8.2.5 2020-05-10 22:11:46 +00:00
Laurent Cozic 17f6d6e8c1 Merge branch 'master' of github.com:laurent22/joplin 2020-05-11 09:42:38 +01:00
Laurent Cozic 347d84526b Tools: Improve git-changelog tool 2020-05-10 17:54:18 +01:00
Laurent Cozic 172327613f Doc: Clarify ID format 2020-05-10 17:52:53 +01:00
Laurent Cozic 3e1ee7f330 Update PULL_REQUEST_TEMPLATE 2020-05-10 17:42:21 +01:00
Laurent Cozic 22b5888671 Electron release v1.0.207 2020-05-10 17:16:36 +01:00
Laurent Cozic 41edae9719 All: Security: Fixes #3143: Filter SVG element event attributes to prevent XSS vulnerability 2020-05-10 16:51:15 +01:00
Laurent Cozic 6446a3c4de Revert "Desktop: Resolves #2894: Set editor color scheme according to theme (#3188)"
This reverts commit 488cb99d4c.

Reason: The app doesn't even start

https://github.com/laurent22/joplin/pull/3188#issuecomment-626334459
2020-05-10 16:33:28 +01:00
Laurent Cozic 9c4939e051 Merge branch 'master' of github.com:laurent22/joplin 2020-05-10 16:28:34 +01:00
Laurent Cozic 9f9f760ede Desktop: WYSIWYG: Handle drag and drop of notes and files 2020-05-10 16:28:22 +01:00
Ayush Jain 488cb99d4c Desktop: Resolves #2894: Set editor color scheme according to theme (#3188)
* conflicts fixed and changes made to aceEditor.tsx

* theme imported
2020-05-10 15:13:55 +01:00
Giacomo Rossetto 4167ecafd2 Desktop: Support Windows tiles (#3063)
* Add vector assets

Useful for future tile designs, they contain suggested content guides

* Add tile files

Images and manifest

* Make build script retrieve new files

* Automate Windows Tiles icon generation

* Fix alignment bug

* Replace handcraftet tiles with automatically generetad ones
2020-05-10 15:01:53 +01:00
Laurent Cozic 6ca41ddf80 Desktop: WYSIWYG: Enable context menu on resources, links and text 2020-05-09 19:18:41 +01:00
Rahul Mohata 734f83470c Desktop, Mobile: Fixes #3109: Fixed background color on large Mermaid graphs (#3111) 2020-05-09 16:21:01 +01:00
Siddhant Sehgal 0f8f7aeb14 Desktop: Fixes #3052: Fixed order of notebooks in "Move to notebook" dialog (#3084)
* Added Folder::sortFolderTree

* Added unit tests
2020-05-09 16:19:30 +01:00
Mohammed Rabeeh 3b653a95a0 Desktop: Fixes #3066: Fix focus after exiting GotoAnything (#3075)
* Fix focus on GotoAnything and Layout Switching

* Update app.js

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-09 16:17:11 +01:00
Yuvaraj J 06eb389b21 CLI: Made layout configurable (#3069) 2020-05-09 16:12:09 +01:00
Rahul Mohata 17d2d6f959 Mobile: Fixed note title placeholder color (#3006)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-09 16:07:47 +01:00
Rahul Mohata 20e065a371 Mobile : Disabled the header items when no note is selected (#2988) 2020-05-09 16:01:39 +01:00
anirudh murali 57cf826e2c All: Resolves #2915: Improve automatic title generation (#2955) 2020-05-09 15:55:00 +01:00
Rahul Mohata dbe8d3a68e Mobile: Fixed the switch background color on config screen (#2919) 2020-05-09 15:39:02 +01:00
Ishant Gupta 5a174b2236 Mobile: Fixes #2875: Fixed notebook title text overflow (#2877)
* uses no_of_lines to fix the issue

* ellipsizeMode added
2020-05-09 15:33:06 +01:00
Mohammed Rabeeh b8158f3b53 Desktop: Fixes #3131: Long URIs break Note Info dialog (#3136) 2020-05-09 11:53:16 +01:00
roman-r-m e768b8cfea Mobile: Avoid crash when downloading large files (#3113) 2020-05-09 11:52:09 +01:00
Vas Sudanagunta c593546575 Docs: minor improvements to search type table (#2957)
- fixed grammar
- removed redundant "query"
2020-05-09 11:31:15 +01:00
roman-r-m 578f93fb90 Mobile: Improve performance of attaching images, especially large ones (#2945)
* Disable sending serialized data over the react-native bridge when attaching image or file

* Remove noData opt from DocumentPicker as it's only relevant for ImagePicker
2020-05-09 11:26:03 +01:00
Caleb John 24a90036b7 Linux: Fixes #2906 : Update install script to remove command -v check (#2926)
* Linux: update install script to remove command -v check

* Formatting change

* spacing
2020-05-09 11:23:42 +01:00
Laurent Cozic 488c0f1828 Merge branch 'master' of github.com:laurent22/joplin 2020-05-09 11:12:36 +01:00
Laurent Cozic f4717d0a3d Desktop: Add option to "Reveal file in folder" when right-clicking on image
Co-authored-by: Vaidotas Šimkus
2020-05-09 11:10:47 +01:00
Pranav Shridhar 913c78f45d macOS: Resolves #2804: Add search feature in Help Menu (#2805)
* added search feature in help menu (for mac users)

* Update app.js

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-05-09 10:47:13 +01:00
Laurent Cozic 4e90c05472 Electron release v1.0.206 2020-05-09 09:38:50 +01:00
Zaid Kesarani d31d9f2638 Android: Fixed Export Profile Error (#3082)
* Fixed issue: #3010

* solved linter errors

* Optimized Code
2020-05-08 22:46:12 +01:00
Laurent Cozic 0cf56d5a9a Merge branch 'master' of github.com:laurent22/joplin 2020-05-08 13:41:42 +01:00
Shotaro Yamada 80112e7b35 Desktop: Handle compositionend event in TinyMCE (#3164) 2020-05-08 00:16:04 +01:00
Laurent Cozic b2f1fac133 Delete question.md 2020-05-08 00:11:26 +01:00
Laurent Cozic cd57877175 Update issue templates 2020-05-08 00:09:09 +01:00
Laurent Cozic 30f515d473 Update question.md 2020-05-08 00:01:16 +01:00
Laurent Cozic 199113341f Update question.md 2020-05-07 23:59:54 +01:00
Laurent Cozic 64aef69d74 Change issue template for questions
Many users unfortunately don't care about the template asking not post support queries here, so we'll now accept questions but we'll just ignore them and let stale bot take care of them.

Also removed the "invalid" template because I believe it make people try to game the system by posting instead a bug report for their support or feature request. At least now we can hope there will less off-topic issues in the bug label.
2020-05-07 23:57:30 +01:00
Laurent Cozic 2073755498 Electron release v1.0.205 2020-05-07 23:11:24 +01:00
Laurent Cozic f72b5c1028 Desktop: WYSIWYG: Fix CODE element style 2020-05-07 23:10:56 +01:00
Laurent Cozic 561b24f6fd Merge branch 'master' of github.com:laurent22/joplin 2020-05-07 18:20:23 +01:00
Laurent Cozic d41221bd90 Desktop: Fixed regression with Ace Editor list indentation, and cleaned up code 2020-05-07 18:20:07 +01:00
Laurent Cozic 132c6543b2 Desktop: Fixed regression with Ace Editor (switching layout had bugs) 2020-05-07 18:08:03 +01:00
AlphaJack 7152344fe1 All: Translation: Update it_IT.po (#3172) 2020-05-07 00:32:51 -04:00
Laurent Cozic a04092c99c Desktop: Fixes #2467: Disable or enable menu items depending on the current view 2020-05-06 23:31:18 +00:00
Laurent Cozic c273fd4d63 Desktop: Fixed regression with local search (could not be closed anymore) 2020-05-06 23:17:03 +01:00
Renato Rosa e06dd9c69f Update locale pt_BR to add latest strings. (#3159) 2020-05-05 19:09:19 +01:00
Laurent Cozic 463b20013d Fixed linter errors 2020-05-05 19:03:13 +01:00
Laurent Cozic 204fbec648 Desktop: WYSIWYG: Handle "Paste as text" when pressing Ctrl+Shift+V 2020-05-05 18:52:06 +01:00
Laurent Cozic d65706aa9c Desktop: TinyMCE: Fixed undo issue when pasting text 2020-05-05 00:01:13 +00:00
Laurent Cozic f2a1597ecc Desktop: TinyMCE: Fixed clicking a link within a checkbox label 2020-05-04 23:08:36 +01:00
Laurent Cozic 9a2f0bee29 Clean up 2020-05-04 18:37:22 +01:00
Laurent Cozic 3f8833eaf1 Desktop: TinyMCE: Added support for scroll restore 2020-05-04 18:31:55 +01:00
Laurent Cozic c3a1e7c6e9 Desktop: Fixed note toolbar layout 2020-05-04 00:14:28 +00:00
Laurent Cozic f5aec137bd Desktop: TinyMCE: Added localisation support 2020-05-03 23:55:41 +00:00
Laurent Cozic 20960dbd47 Electron release v1.0.204 2020-05-03 23:21:54 +01:00
Laurent Cozic e45fd6b4d3 Fixed typo 2020-05-03 23:21:45 +01:00
Laurent Cozic 8eacba972e Electron release v1.0.203 2020-05-03 18:46:27 +01:00
Laurent Cozic 51732a5adb Desktop: Fixed various bugs and regressions following note editor refactoring
Squashed commit of the following:

commit 5fde36f5c3fa7c7efbce6d81f48fe841c823e88c
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 18:43:20 2020 +0100

    Cannot fix for now

commit 251284db3c8b7da6db83f3e06fd19bfdc8b8dd3f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 18:31:08 2020 +0100

    Fixed print to multiple PDFs logic

commit 00d9557996fb984b400fe650594150ae2681e03f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 17:49:20 2020 +0100

    Fixed local search in TinyMCE

commit 46778bf0a79f3bba9ddbc27389fadce4f8944507
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 17:37:31 2020 +0100

    Restored note toolbar buttons

commit 3e623c98f0a1cf08bf7d0136f0c8982c5e1ddcd8
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 12:30:57 2020 +0100

    Various fixes and moved note toolbar to left of title

commit 790262fe9df5b08d4a619e5244d2906047b39855
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 11:21:11 2020 +0100

    Clean up

commit cea30f42e69014ecabda6fa5083199a1ba7b7510
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun May 3 11:08:23 2020 +0100

    Fixed note loading in TinyMCE
2020-05-03 18:44:49 +01:00
Laurent Cozic f51873d877 Desktop: Remove colour gradient from sidebar and replaced expand icons with chrevrons 2020-05-02 17:17:15 +01:00
Laurent Cozic d738fa54ad Electron release v1.0.202 2020-05-02 16:52:38 +01:00
Laurent Cozic ec8ccc94aa Revert "Tests: Fix random failures (#2777)"
This reverts commit d1cab4b7f5.
Part of this revert: d2582f4fdf

For rationale see https://github.com/laurent22/joplin/pull/2819#issuecomment-616148984
2020-05-02 16:45:25 +01:00
Laurent Cozic cb8dca747b Refactor note editor
Refactor note editor using React Hooks and TypeScript
and moved editor-specific code to separate files.
Moved business logic into more maintainable custom hooks.

Squashed commit of the following:

commit f243d9bf89bdcfa1849ee26df5c0dd3e33405010
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 16:04:14 2020 +0100

    Fixed saving issue

commit 055f68d2e8b6cf6f130336c38ac2ab480887583d
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 15:43:38 2020 +0100

    Fixed HTML notes

commit 99a3cf71f58d2fedcdf3001bf4110b6e8e3993da
Merge: 9be85c45f2 b16ebbbf7a
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 12:54:42 2020 +0100

    Merge branch 'master' into refactor_note_text

commit 9be85c45f23e5cb1ecd612b0ee631947871ada6f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 12:21:01 2020 +0100

    Ident to space

commit 848dde1869c010fe5851f493ef7287ada5f2991e
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 11:28:50 2020 +0100

    Refactor prop types

commit 13c3bbe2b4f9a522ea3f8a25e7e5e7bb026dfd4f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat May 2 11:15:45 2020 +0100

    Fixed resource loading issue

commit 50cb38e3f00ef40ea8b6a468eadd66728a3ec332
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri May 1 23:46:58 2020 +0100

    Fixed resource loading logic

commit bc42ed03735f50c8394d597bb9e67312e55752fe
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri May 1 23:08:41 2020 +0100

    Various fixes

commit 03c038e6d6cbde03bd474798b96c4eb120fd1647
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 29 23:22:49 2020 +0100

    Fixed resource handling

commit dc6c15302fac094c4e7dec5a20c9fcc4edb3d132
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 29 22:55:13 2020 +0100

    Moved more code to files

commit 398d5121e53df34de89b4148ef2cfd3a7bbe4feb
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 29 00:22:43 2020 +0000

    More fixes

commit 3ebbb80147d7d502fd955776c7fedb743400597f
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 29 00:12:44 2020 +0000

    Various improvements and bug fixes

commit 52a65ed3875e0709117ca93ba723e20624577d05
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Apr 28 23:51:07 2020 +0000

    Move more code to sub-files

commit 33ccf530fb442d7ddae0852cbab2c335efdbbf33
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Apr 28 23:25:12 2020 +0100

    Moved code to sub-files

commit ba3ad2cf9fcc1d7809df4afe93cd9737585a9960
Merge: 445acdab73 150ee14de6
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Apr 28 22:28:56 2020 +0100

    Merge branch 'master' into refactor_note_text

commit 445acdab7368345369d7f69b9becd1e77c8383dc
Author: Laurent Cozic <laurent@cozic.net>
Date:   Tue Apr 28 19:01:41 2020 +0100

    Imported more code

commit 772481d3a3ac7f0b0b00e86394c0f4fd2f3a9fa7
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 27 23:43:17 2020 +0000

    Handle save/load state

commit b3b92192ae3a1a30e3018810346cebfad47ac5e3
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 27 23:11:11 2020 +0000

    Clean up and added back scroll

commit 7a19ecfd0cb7fef1d58ece2e024099c7e40986da
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 27 22:29:39 2020 +0100

    More refactoring

commit ac388afd381eaecfa4582b3566d032c9d953c4dc
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun Apr 26 17:07:01 2020 +0100

    Restored print

commit 1d2c0ed389a5398dacc584d24922c5ea0dda861a
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sun Apr 26 12:03:15 2020 +0100

    Put back search

commit c618cb59d43fa3bb507dbd0b757b302ecfe907b3
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat Apr 25 18:21:11 2020 +0100

    Restore scrolling behaviour

commit 324e6ea79ebafab1d2bca246ef030751147a47eb
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat Apr 25 10:22:31 2020 +0100

    Simplified saving notes

commit ef089aaf2289193bf275d94c1f2785f6d88657e4
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat Apr 25 10:12:16 2020 +0100

    More refactoring

commit 61b102307d5a98d2c1502d7bf073592da21af720
Author: Laurent Cozic <laurent@cozic.net>
Date:   Fri Apr 24 18:04:44 2020 +0100

    Added back note revisions

commit 7d5e3694d0df044b8493d9114e89e2d81c9b69ad
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Apr 23 22:51:52 2020 +0000

    More note toolbar refactoring

commit a56d58e7c80d91f29afadaffaaa004f3254482f7
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Apr 23 20:54:37 2020 +0100

    Finished toolbar refactoring

commit 6c8ef9f44f880a9569eed5c54c9c47dca2251e5e
Author: Laurent Cozic <laurent@cozic.net>
Date:   Thu Apr 23 19:17:44 2020 +0100

    More refactoring

commit 7de8057158a9256e2e0dcf948081e10a6a642216
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 22 23:48:42 2020 +0100

    Started refactoring commands

commit 177263c85e7d17d8ddc01b583738c2ab14b3acd7
Merge: f58f1a06e0 7ceb68d835
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 22 20:26:19 2020 +0100

    Merge branch 'master' into refactor_note_text

commit f58f1a06e08b3cf80e2ac7a794b15f4b5caf8932
Author: Laurent Cozic <laurent@cozic.net>
Date:   Wed Apr 22 20:25:43 2020 +0100

    Moving Ace Editor to separate component

commit a83d3a220515137985c0f334f5848c91b8539138
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 20 20:33:21 2020 +0000

    Cleaned up directory structure for note editor

commit c6f2e609c9443bac21de5033bbedf86ac6f12cc0
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 20 19:23:06 2020 +0100

    Added "note" menu to move note-related items to it

commit 1219465318ae5a7a2c777ae2ec15d3357e1499df
Author: Laurent Cozic <laurent@cozic.net>
Date:   Mon Apr 20 19:05:04 2020 +0100

    Moved note related toolbar to separate component
2020-05-02 16:41:07 +01:00
Laurent Cozic b16ebbbf7a Tools: Fixed clipper watch tool 2020-05-02 12:52:24 +01:00
Laurent Cozic 90ccb34916 Doc: Update contributor list 2020-05-01 14:51:29 +01:00
Laurent Cozic 724af8f757 Docs: Add Season of Docs info 2020-05-01 14:50:28 +01:00
mic704b 125fa8647a All: Fix format of geolocation data (#2673)
* Maintain geolocation data format through serialization.

* Add test.
2020-04-30 16:56:47 +01:00
Helmut K. C. Tessarek bf47237d8f Desktop: Add + to access 'Zoom In', allows to use the numpad (#2630)
* add + to access 'Zoom In', allows to use the numpad

This change aligns Joplin's behavior with all other apps that have shortcuts for `Zoom In`.
It therefore improves the user experience.

/ref

https://discourse.joplinapp.org/t/please-help-test-the-new-desktop-pre-release/6445/2?u=tessus
https://github.com/laurent22/joplin/pull/2165#issuecomment-593106648

* add comment

* improve comment
2020-04-30 10:08:19 +01:00
PackElend 294b9fc941 refreshed ideas 1 and 2, added 3 2020-04-30 00:48:52 +02:00
PackElend 699c1ab58c added sup-steps in recommended steps
Added important sub-steps under point 5 in the recommended steps to ensure that the applicants don't blow the backlog
2020-04-30 00:32:39 +02:00
Laurent Cozic 150ee14de6 Update website 2020-04-28 19:09:03 +01:00
Laurent Cozic b207f7a53f Doc: Fixed GitHub Sponsor button 2020-04-28 19:08:31 +01:00
Laurent Cozic 096698912e Update website 2020-04-28 19:03:54 +01:00
Xaris Ar a5ec1be7d1 All: Translation: Update el_GR.po (#3128) 2020-04-25 16:09:12 -04:00
espinosa f9f884a7f3 All: Translation: Update fr_FR.po (#3123)
* Partial translation in French

* Remplacé "décryptage" par "déchiffrage"
2020-04-25 13:12:20 -04:00
James ADJINWA 31d59c1e21 Doc: Little typo correction in E2EE (#3122) 2020-04-25 11:14:35 +01:00
Laurent Cozic 7663044e9f Doc: Added GitHub Sponsor button 2020-04-22 23:44:48 +00:00
Rahul Mohata 7ceb68d835 Desktop: Fixes #3095: Fixed the Goto Anything item list overflow (#3096)
* fixed the Goto Anything item list overflowing

* added dialog box styles
2020-04-21 23:57:04 +01:00
Helmut K. C. Tessarek ac2635a363 Update translations 2020-04-21 08:03:29 -04:00
Arda Kılıçdağı 2496e6e738 All: Translation: Update tr_TR.po (#3104) 2020-04-21 07:41:31 -04:00
Gen Neko b4b36c6f22 All: Translation: Update ja_JP.po (#3105) 2020-04-21 07:39:45 -04:00
Laurent Cozic 0171ea837f Merge branch 'master' of github.com:laurent22/joplin 2020-04-21 11:17:40 +01:00
Laurent Cozic 79a343c2d9 Tools: Removed obsolete labels 2020-04-21 10:10:01 +01:00
Laurent Cozic dd5ed48c7e Tools: Better handling of translation messages in changelog 2020-04-20 18:10:27 +00:00
Laurent Cozic e7169cc70d Desktop: Fixes #3093: Prevent Goto Anything from freezing when inputting special characters 2020-04-20 18:01:28 +00:00
Zaid Kesarani c65ee4a424 Desktop: Fixed KaTeX font issue in exported PDF and HTML (#3089)
* Fixed issue: #3078

* updated comments

* Changed as requested
2020-04-20 15:17:11 +01:00
Mohammed Rabeeh feee162578 Mobile: Fixes #3098: Fixed table background colour on dark themes (#3100) 2020-04-20 15:15:31 +01:00
mic704b d1cab4b7f5 Tests: Fix random failures (#2777)
* Update new feature tests following test harness fixes.

* Fix lint errors.
2020-04-20 11:32:42 +01:00
Laurent Cozic d2acf314f5 Android release v1.0.329 2020-04-20 10:13:04 +01:00
Laurent Cozic b803984773 Android: Fixes #3041: Fixed text scrolling issue on older devices 2020-04-20 22:31:21 +00:00
Laurent Cozic d2582f4fdf Revert "Restored note history feature by Naveen M V <naveenmv7@gmail.com>"
This reverts commit 61d3582357.

For rational see https://github.com/laurent22/joplin/pull/2819#issuecomment-616148984
2020-04-19 17:14:57 +01:00
Laurent Cozic dfd18ebe24 Android release v1.0.328 2020-04-19 16:25:38 +01:00
Laurent Cozic 94082bc6a5 Android: Fixes #3041 (maybe): Fixed scrolling issue on certain Android devices when displaying large notes 2020-04-19 16:21:09 +01:00
Laurent Cozic 5c3c72c37e Merge branch 'master' of github.com:laurent22/joplin 2020-04-19 16:02:28 +01:00
Laurent Cozic d730e068b0 All: Fixes #3088: Better handling of missing table field bug on Linux 2020-04-19 16:02:10 +01:00
PackElend b2f8c38842 changed gsos2020 to gsod2020 2020-04-19 12:39:06 +02:00
PackElend 71b2e36429 changed from GSoD-2020 to gsod2020 2020-04-19 12:33:50 +02:00
Laurent Cozic e598c64241 Merge branch 'master' of github.com:laurent22/joplin 2020-04-19 10:12:04 +01:00
Laurent Cozic 2b2ec2c655 All: Started resource fetcher service when a note has been decrypted 2020-04-19 10:11:46 +01:00
Helmut K. C. Tessarek 381d757525 Update translations 2020-04-18 19:20:09 -04:00
Helmut K. C. Tessarek d54c59cf74 fix nl_BE.po - for some reason the CI did not catch this 2020-04-18 19:19:22 -04:00
johanvanheusden 1f481fba4e All: Translation: Update nl_BE.po (#3086)
File corrected and completed until line 470
2020-04-18 19:14:16 -04:00
Lorinson 69cd88e4a5 All: Translation: Update pt_PT.po (#3018)
* PT-PT Locale Update

* PT-PT 18/04/2020 Update

* Update pt_PT.po
2020-04-18 14:40:02 -04:00
PackElend b140a9d7de GSoD ideas
first draft of the idea summery for Google's Season of Doc 2020
2020-04-18 17:33:57 +02:00
PackElend b1b530edf2 GSoDoc-2020 intro
Creating the first draft of the intro page for Google Season of Doc 2020
2020-04-18 17:17:20 +02:00
Laurent Cozic ab63316f83 Merge branch 'master' of github.com:laurent22/joplin 2020-04-18 12:46:08 +01:00
Laurent Cozic 35df8e5d9e All: Added support for basic search 2020-04-18 12:45:54 +01:00
jabdoa2 ea3c82733c Add LXDE to installer as it works fine there (#3081) 2020-04-18 00:03:06 +01:00
rnbastos 60f75fe2db All: Translation: Update pt_BR.po (#3065) 2020-04-17 06:57:40 -04:00
Mohammed Rabeeh 9214095a64 iOS: Resolves #2798: Switch keyboard colour with theme (#3061) 2020-04-16 23:35:31 +01:00
Laurent Cozic 676c43ebab Doc: Added blog posts for archival purpose and to allow listing them in notifications 2020-04-15 22:11:42 +00:00
Laurent Cozic e65af8c1e4 Electron release v1.0.201 2020-04-15 17:38:14 +01:00
Laurent Cozic 2321455723 Update stale.yml 2020-04-15 11:45:03 +01:00
Laurent Cozic 9260235224 Tools: Set stale limit to 45 days
As the project is active, 45 days is enough time to label the issue (and then it won't be closed). If it has not been labelled within that time it's probably not important enough to keep it open, or we don't have resources to deal with it.
2020-04-15 11:44:55 +01:00
Laurent Cozic 56801c0a08 Merge branch 'master' of github.com:laurent22/joplin 2020-04-15 11:24:53 +01:00
Helmut K. C. Tessarek aa738cc086 Revert "Desktop: Add global shortcut to show/hide Joplin (#2653)"
This reverts commit 0863f0d564.
2020-04-15 05:50:26 -04:00
Laurent Cozic 900b0f3eb2 Merge branch 'master' of github.com:laurent22/joplin 2020-04-15 09:51:44 +01:00
Mohammed Rabeeh b5a64e2c3e Doc: Fix start scripts for iOS and Android (#3062) 2020-04-15 09:51:06 +01:00
Laurent Cozic 4163d9e474 All: Fixed regression caused by commit 6164e2d8eb 2020-04-14 23:31:28 +00:00
Laurent Cozic d769dc2b94 Desktop: Fix issue where last used filename was displayed when exporting directory 2020-04-15 00:05:57 +01:00
Laurent Cozic c9fc52ec74 Merge branch 'master' of github.com:laurent22/joplin 2020-04-14 23:58:37 +01:00
Laurent Cozic fe72568d3b Desktop, Mobile: Fixes #3058: In some cases, notes with Katex code were not exported correctly as PDF 2020-04-14 23:58:23 +01:00
Mohammed Rabeeh c5c379f38a Mobile: Fixes #2853: Fix white rectangle issue on dark theme (#3055) 2020-04-14 20:12:18 +01:00
Laurent Cozic 2050889590 Desktop: Fixes #2968: Trying to resource path issue in WYSIWYG editor 2020-04-13 22:55:24 +00:00
Laurent Cozic 6164e2d8eb Desktop: Search in title and body by default when using Goto Anything 2020-04-13 22:10:59 +00:00
Siddhant Sehgal 30c175ef29 Desktop: Resolves #2799: Disable prompt dialog OK button when input is empty (#2905) 2020-04-14 12:20:05 +01:00
Laurent Cozic f6fed72b64 Desktop, Mobile: Fixes #3033: Fixed Katex rendering issue when greater than symbol appears in markup 2020-04-12 22:54:42 +00:00
Laurent Cozic 7596ff2eda Mobile, Desktop: Disable BASE html tag, which can break certain plugins such as Katex 2020-04-12 23:00:36 +01:00
Laurent Cozic 142976f012 Electron release v1.0.200 2020-04-12 12:54:25 +01:00
Laurent Cozic ab5c97f75a Desktop: Add more log statements to attempt to fix #2968 2020-04-12 10:09:24 +01:00
Anjula Karunarathne aea3de982a Desktop: Fixes #3028: Fix Go To Anything closing when clicking inside the modal (#3029)
* Fix Go To Anything closing when clicking inside the modal

* Update GotoAnything.jsx

* Update GotoAnything.jsx

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-04-12 09:59:00 +01:00
Assim Deodia 83aff6f478 Linux: Fix install script to add support for non-default home dir (#2969)
If user home directory is configured to anything other than `/home/${USER}`, `Exec` command in desktop entry points to non-existing file, and desktop entry is not considered valid, thus does not appear in list of application. Standard way to get home directory is using `${HOME}` environment variable. This could also be possible root cause of https://discourse.joplinapp.org/t/joplin-not-installing-completely/5669/2
2020-04-12 00:29:39 +01:00
Martin Giger 6cb7154bf4 Support icon install on elementary OS (#3023) 2020-04-12 00:27:06 +01:00
Caleb John 3aa38d35d7 Desktop: Fix JEX export (#3026)
* Return empty default for exports with no note ids (jex for example)

* switch to ! syntax instead of == null
2020-04-12 00:14:53 +01:00
Siddhant Sehgal 870a76c570 Desktop: Fixes #2830: Fixes todo mouse hover behaviour (#2831)
* Fixed-todoitem-hover

* Added empty space for build fix

* Fixed-todo-hover
2020-04-11 11:38:00 +01:00
Rishabh Malhotra 206a64eff6 Desktop: Fixes #2736: Fixes selection in text editor after applying formatting (#2737)
* Appliying changes

* Update NoteText.jsx
2020-04-11 11:02:19 +01:00
Laurent Cozic 6b97839617 Merge branch 'master' of github.com:laurent22/joplin 2020-04-11 10:51:36 +01:00
Laurent Cozic 456d979aa6 Desktop: Fixes #3019: Title auto-update didn't work anymore
Revert "Desktop: Resolves #2681: Clear provisional flag as soon as note is modified to avoid data loss"

This reverts commit 518af9dc0a.
2020-04-11 10:49:16 +01:00
Ethan Chen ea5e0d337c All: Translation: Update zh_TW.po (#3020) 2020-04-11 03:52:00 -04:00
abolishallprivateproperty 9651317695 All: Translation: Update sv.po (#3013) 2020-04-10 21:48:37 -04:00
Laurent Cozic a4cc2076d7 Update website 2020-04-11 00:39:25 +01:00
Laurent Cozic db820d500d Merge branch 'master' of github.com:laurent22/joplin 2020-04-11 00:38:37 +01:00
Laurent Cozic 722192127c Doc: Added info on how to fix broken installations on Windows 2020-04-11 00:36:57 +01:00
Laurent Cozic 36e23d6432 Tools: Minor update of CLI release script 2020-04-10 19:33:25 +01:00
Laurent Cozic 8cfb014f60 CLI v1.0.163 2020-04-10 19:32:20 +01:00
Laurent Cozic b4a572c8ae ios-v10.0.47 2020-04-10 19:30:43 +01:00
Laurent Cozic 531e92e2da Android release v1.0.327 2020-04-10 19:20:26 +01:00
Laurent Cozic 53a857b706 Electron release v1.0.199 2020-04-10 19:16:48 +01:00
Laurent Cozic 4f5473f8a2 All: Display WYSIWYG info in config screen only in desktop app 2020-04-10 19:16:18 +01:00
Laurent Cozic 1b617a4adc Android release v1.0.326 2020-04-10 18:57:20 +01:00
Laurent Cozic 7741a43d42 Electron release v1.0.198 2020-04-10 18:53:04 +01:00
Laurent Cozic 776411f882 Desktop: WYSIWYG: Added support for tables 2020-04-10 18:22:17 +00:00
Laurent Cozic ae4cecc621 Desktop: WYSIWYG: Handle internal note links 2020-04-10 17:59:51 +00:00
Laurent Cozic 5be98a46e3 Desktop: WYSIWYG: Improved documentation on what plugins are compatible with WYSIWYG editor 2020-04-10 17:33:09 +00:00
Laurent Cozic 1907ef0c99 Tools: Dynamically generate PortableApps images 2020-04-10 18:19:17 +01:00
Laurent Cozic bd99b25848 Desktop: WYSIWYG: Preserve HTML code in Markdown when editing from wysiwyg editor 2020-04-10 17:12:41 +00:00
Rishabh Malhotra 616401ebba Update aritimDark.js
Changing #fff to #d3dae3
2020-04-10 19:11:15 +05:30
Rishabh Malhotra d0fb6acccd changing bold text preview color 2020-04-10 13:22:35 +05:30
Laurent Cozic 12a7b3c73c Desktop: WYSIWYG: Do not display target list in link dialog 2020-04-09 19:05:07 +01:00
Laurent Cozic 75b28c46af Desktop: Wait for note to be saved before closing the app 2020-04-09 18:57:20 +01:00
Laurent Cozic 93dccf62df Desktop: WYSIWYG: Added support for custom icon package and set Attach toolbar icon 2020-04-09 17:49:56 +01:00
Laurent Cozic ec499eecd5 Desktop: WYSIWYG: Added support for code blocks edition and creation 2020-04-09 17:47:12 +01:00
Laurent Cozic 7ccd19e21d Cli: Fixes #2981: Add support for retrying decryption after it has failed multiple times 2020-04-08 18:02:31 +01:00
Laurent Cozic a6459d3641 Mobile: Fixes #2941: Fixed resource download auto mode 2020-04-08 17:40:32 +00:00
Laurent Cozic 9b26378fdd All: Fixes #2709: When modifying a conflicted note, it would disappear from the view 2020-04-07 23:06:29 +00:00
Laurent Cozic 6b8e84332d Desktop: Resolves #2639: Resource screen improvements (#2850)
Co-authored-by: Georg Grab <talkdirty@users.noreply.github.com>
2020-04-08 11:12:25 +01:00
Laurent Cozic 6d56bb8afd Revert "Mobile: Fixes #2847: Fixed text issue in config screen on some devices (#2851)"
Reverted to fix regression (crash) in iOS app.

https://github.com/laurent22/joplin/pull/2851#issuecomment-610688103

This reverts commit e024015d5e.
2020-04-08 01:38:39 +01:00
Laurent Cozic be9e873277 Mobile: Fixes #1437: Allow scrolling past end of note 2020-04-08 01:22:18 +01:00
Laurent Cozic 10feeeeb6b All: Fixes #2257: Prevent decryption loop when a resource cannot be decrypted 2020-04-08 01:00:01 +01:00
Laurent Cozic 518af9dc0a Desktop: Resolves #2681: Clear provisional flag as soon as note is modified to avoid data loss 2020-04-06 21:10:44 +00:00
Laurent Cozic 093fc811eb All: Fixes #2604: Fixed iOS and macOS icons and created script to automate icon creation 2020-04-06 20:55:40 +00:00
Tobias Johansson 2a8b27033f Desktop: Added new Aritim-Dark theme (#2997)
* Working on an aritim-dark theme, very WIP still

* Update aritim.js

* Added new theme "Aritim-Dark"

* removing aritim-dark "brace" theme for now

* Updating style with some changes

* Reset branch back to the original upstream state, to create a different pull-request for moving all themes outside

* Reset branch back to the original upstream state

* Moved all themes out into their own .js theme files

* Updating master to use the seperated themes stuff

* Moved themes into their own const

* Removed switch case for themes and simplified it. Thanks Laurent for the help!

* Adding Aritim-Dark to theme options
2020-04-07 10:23:40 +01:00
Tobias Johansson 62bddd7c69 Desktop: Moved all themes out into their own .js theme files (#2951)
* Working on an aritim-dark theme, very WIP still

* Update aritim.js

* Added new theme "Aritim-Dark"

* removing aritim-dark "brace" theme for now

* Updating style with some changes

* Reset branch back to the original upstream state, to create a different pull-request for moving all themes outside

* Reset branch back to the original upstream state

* Moved all themes out into their own .js theme files

* Updating master to use the seperated themes stuff

* Moved themes into their own const

* Removed switch case for themes and simplified it. Thanks Laurent for the help!
2020-04-07 09:19:53 +01:00
Helmut K. C. Tessarek 113f91b3c5 Update website 2020-04-05 20:39:10 -04:00
Helmut K. C. Tessarek d40ad2de89 Update translations 2020-04-05 20:37:15 -04:00
Kwangmyung Kim 3b7733018c All: Translation: Update ko.po (#2986)
* Translation: Update ko.po

* Update README.md

Both the words ‘한국어’ and ‘한국말’ are composed of two meaning blocks : Korean + language.

어, which can be written in the Chinese character 語, means “language”, and 말, which is a native Korean word, also means “language”. So basically 한국어 and 한국말 are the same meaning, but I’d say 한국어 is a little more formal word while 한국말 is a more colloquial word.

‘어’ can be found in many other language names, but ‘말’ is not so commonly used other than in the word ‘한국말’ or ‘우리말(uri mal - ‘our language’, which is a word that Korean people use to mean ‘Korean’).

Here are some examples:

English = 영어
Chinese = 중국어
Japanese = 일본어
Arabic = 아랍어
Spanish = 스페인어
French =  프랑스어
Latin = 라틴어
Russian = 러시아어

* change incorect word

* Revert "Update README.md"

This reverts commit 88199a40df.
2020-04-05 20:31:15 -04:00
Helmut K. C. Tessarek e319864669 Tools: Fix Korean language name: 한국어 (#2989) 2020-04-05 21:14:31 +01:00
Ishant Gupta 7251813634 Mobile: Fixed config text input not visible in dark mode (#2910) 2020-04-05 20:47:30 +01:00
Ishant Gupta e024015d5e Mobile: Fixes #2847: Fixed text issue in config screen on some devices (#2851)
* fixed text issue on some devices and closes #2847

* changes added to global file
2020-04-05 20:05:04 +01:00
Gen Neko 3f5e6d72d6 Fix a blank Goto Anything screen (#2983) 2020-04-05 08:55:00 +01:00
abonte 9fd43a30f9 All: Translation: Update it_IT.po (#2978) 2020-04-04 21:08:33 -04:00
Laurent Cozic 0707a0e05f Merge branch 'master' of github.com:laurent22/joplin 2020-04-04 18:31:56 +01:00
Laurent Cozic f550d847c4 Desktop: Resolves #2688: Add "Retry All" option to synchronisation page
Based on pull request #2712 by fhfuih

commit 7d3815e51dbf682ecc1ed3544a15e51b79d5d12d
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat Apr 4 18:26:01 2020 +0100

    Fix issues

commit dad1d2c4d4eb37fdd23096a3344cf4f14498e335
Merge: 16cf0a3058 0a1ba511ea
Author: Laurent Cozic <laurent@cozic.net>
Date:   Sat Apr 4 18:09:46 2020 +0100

    Merge branch 'master' of https://github.com/fhfuih/joplin into fhfuih-master

commit 0a1ba511ea
Merge: 6207b42044 bdd760f343
Author: fhfuih <fhfuih@outlook.com>
Date:   Sat Mar 14 20:30:27 2020 -0400

    Merge branch 'master' into master

commit 6207b42044
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Sat Mar 14 20:13:28 2020 -0400

    Decryption Retry All RN frontend

commit 6f46d1985f
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Sat Mar 14 20:10:55 2020 -0400

    Decryption Retry All backend & desktop

commit 4c3d37b311
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Fri Mar 13 13:21:21 2020 -0400

    Revert "Add "retry all" option to synchronisation page"

    This reverts commit 15daaa16fd.

commit cffc919791
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Fri Mar 13 13:19:51 2020 -0400

    Revert "Refactor "retry all" renderer to avoid hacks"

    This reverts commit 51ba6ea655.

commit 51ba6ea655
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Tue Mar 10 18:27:22 2020 -0400

    Refactor "retry all" renderer to avoid hacks

commit 57d71712e1
Merge: 15daaa16fd b367955e56
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Mon Mar 9 20:42:02 2020 -0400

    Merge branch 'master' of https://github.com/fhfuih/joplin

commit 15daaa16fd
Author: fhfuih <sam.zyhuang@outlook.com>
Date:   Mon Mar 9 20:36:09 2020 -0400

    Add "retry all" option to synchronisation page
2020-04-04 18:30:13 +01:00
Siddhant Sehgal 1e9a0036e7 Desktop: Resolves #2296: Right-click to move note to notebook (#2566)
* Assign Notebook functionality added

* Made the changes acc. to laurent22

* Changes done till 9/03/20

* Removed NoteContentPropertiesDialog.js

* Render notebooks in tree hierarchy

* Update PromptDialog.jsx

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-04-04 18:03:09 +01:00
Laurent Cozic 16cf0a3058 Merge branch 'master' of github.com:laurent22/joplin 2020-04-04 17:36:29 +01:00
Helmut K. C. Tessarek 0fa19a281c fix heading 2020-04-04 03:46:23 -04:00
Mats Estensen 9c53f485e6 All: Translation: Update nb_NO.po (#2973) 2020-04-03 18:21:20 -04:00
Li dc131f77d4 All: Translation: Update zh_CN.po (#2971) 2020-04-03 18:20:17 -04:00
Laurent Cozic 712601b8c0 Desktop: WYSIWYG: Apply theme to toolbar 2020-04-03 18:12:14 +00:00
Caleb John ff7775b344 Desktop: Add friendly default filenames to export options (#2749)
* Add friendly default filenames to export options

* remove extension from safefilename call

* Load parent folder for all exports

* convert foldername and filename to friendly versions separatly

* Add null guards to the filename export
2020-04-03 00:24:33 +01:00
Laurent Cozic 0512fa6208 Desktop: Fixed regression when drag and dropping files 2020-04-02 23:01:14 +01:00
Laurent Cozic 27ab2b8e30 Desktop: Fixed styling issues with rendered Markdown 2020-04-02 22:54:06 +01:00
Laurent Cozic 9fa7c9c20a Desktop: WYSIWYG: Better handling of links on macOS and inside Katex block 2020-04-02 19:58:25 +01:00
Laurent Cozic 6bd0250ef8 Desktop: WYSIWYG: Handle resource download mode 2020-04-02 18:16:11 +01:00
Laurent Cozic 0d736bcb58 CLI v1.0.162 2020-04-01 18:18:41 +01:00
Laurent Cozic c1129604ba Tools: Disable logging to console by default 2020-04-01 18:15:40 +01:00
Laurent Cozic 693f6cbfe7 Desktop: Add message box to ask confirmation when resizing image 2020-03-31 22:40:38 +01:00
Jonas 7f397a4da8 Fix Joplin_install_and_update.sh (#2913)
Make space after '"tag_name":' optional, to avoid the whole script failing without further notice.

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-03-30 18:36:10 +01:00
Siddhant Sehgal 52ba5c5bb7 Desktop: Close Goto Anything modal on outside click (#2940)
* Close goto modal on outside click

* Renamed for consistency

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-03-30 18:33:36 +01:00
Laurent Cozic ce24942a03 Update website 2020-03-30 18:23:46 +01:00
Laurent Cozic 719afba05a Electron release v1.0.197 2020-03-30 18:03:36 +01:00
Laurent Cozic c99dd2ba87 Tools: Fixed Electron build 2020-03-30 18:03:02 +01:00
Helmut K. C. Tessarek a59cc94afc Update translations 2020-03-30 11:03:18 -04:00
nmiquan 336cadbc12 Translation: add Vietnamese (vi.po) (#2931)
* Vietnamese Translation

* removed cli messages

* updated translation
2020-03-30 10:59:49 -04:00
Laurent Cozic a946dc69c1 Android release v1.0.325 2020-03-29 20:12:36 +01:00
Laurent Cozic e2e95df057 Electron release v1.0.196 2020-03-29 20:06:44 +01:00
Laurent Cozic e095369e1a Desktop: WYSIWYG: Prevent scripts from loading multiple times 2020-03-29 20:06:13 +01:00
Laurent Cozic 1c938a5998 Update build_troubleshooting.md 2020-03-29 11:08:53 +01:00
Anjula Karunarathne a45128807e Desktop: Resolves #2683: Go To Anything by body (#2686)
* Go to anything by body

* Made limit parameter required

* Made parameter required

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-03-28 13:05:00 +00:00
Brandon Wulf d54e52b1a8 Desktop: Cleaning up the install / update script (#2719)
* Cleaning up the install script

* New `--force` option always downloads the latest version
* New `--notes` option shows the release notes
* Actually print the version installed at the end
* Show download progress, but not extra garbage
* Blue logo

* refactor and cleanup

* Handle space, but no args
2020-03-27 21:58:04 -04:00
Laurent Cozic 5743729d11 Desktop: WYSIWYG: Getting links to work 2020-03-27 18:28:13 +00:00
Laurent Cozic 11d8466db1 Desktop: WYSIWYG: Getting links to work 2020-03-27 18:26:52 +00:00
Laurent Cozic c3360d6c48 Merge branch 'master' of github.com:laurent22/joplin 2020-03-27 16:12:43 +00:00
Bart 37158fdb89 Desktop: Fixes #2334: MD importer handle special chars in linked image name (#2346)
* md importer: decode uri encoded links to cover case of special chars in linked image names

* md importer: temp debug logs for linux test pipeline

* md importer: more temp debug logs

* md importer: tests, add special char image name on linux

* md importer: tests, use const not let

* md importer: remove debug logs
2020-03-27 12:20:38 +00:00
anirudh murali ae73051797 Desktop: Fixes #2917: Prevent title overflow on small windows (#2918) 2020-03-27 12:16:40 +00:00
Ishant Gupta 62db3d09ea Mobile: Fixes #2900: Fixed bold text not visible in dark theme (#2909)
* fixed bold text not visible in oled dark theme

* fixed variable names
2020-03-27 12:13:22 +00:00
Amit singh f82aa0adde Mobile: Fixes #2867: Fixed styling issue in config screen (#2868)
* fixes hidden path text

* fixes hidden path text lable
2020-03-27 12:09:26 +00:00
Laurent Cozic 5e5b6cdc42 Desktop: WYSIWYG: Restored focus logic and fixed undo issue 2020-03-26 17:19:13 +00:00
Gen NK 351306eb03 Translation: Update ja_JP.po (#2914) 2020-03-26 11:55:00 -04:00
Laurent Cozic e4fffa52d4 Doc: Updated info about unit tests and feature tests 2020-03-25 17:56:05 +00:00
Ishant Gupta d622ff4a78 Mobile: Fixes #2843: Fixed overlapping text in Dropbox sync page (#2845) 2020-03-25 11:18:39 +00:00
Devon Zuegel b6d4fd16c9 Mobile: Add toolbar, list continuation and Markdown preview to editor (#2224)
* The basic editor is working! No list continuation still though

* List continuation is working! Now to delete when entering again and not typing on line + handle ordered lists

* Supports checkboxes + attempted at setting font

* Editor font works now; now need to fix the delete (look at past state)

* Fix deletion problem

* Add ordered list handler

* Add comments

* Extract insertListLine

* End lists on enter for empty bullets

* Add MarkdownView (renders badly though)

* Save edited text from MarkdownEditor

* Cleanup

* Refactor react-native-markdown-editor/

* Rename react-native-markdown-editor/ => MarkdownEditor/

* Cleanup

* Fix preview styles; still need to fix checkbox problem

* Fix keyboard padding

* Change name back to #body_changeText

* Incorporate PR feedback from @laurent22

* wip: Move MarkdownEditor/ from ReactNativeClient/lib/ to ReactNativeClient/

* Move MarkdownEditor/ from ReactNativeClient/lib/ to ReactNativeClient/

* Remove log statement

* Focus TextInput in MarkdownEditor from grandparent

* Make eslint happy

* Extract textInputRefName to shared variable

* Remove accidental #setState

* Cleanup

* Cleanup

* Run linter

* Cleanup

* Update button order

* Improve styles for config descriptions

* Allow descriptions to be added to BOOL type Setting configs

* Add editorBeta Setting

* Move FailSafe details to description text

* Update descriptionText styles

* Put the editor under the beta flag toggle

* Incorporate PR feedback from @laurent22

* Refactor Markdown editor focusing

* Cleanup

* Reorder MarkdownEditor formats

* Make applyListFormat behavior more intuitive

* Add comment

* Show MarkdownEditor with preview by default

* Show preview by default, then hide on typing

* Fix MarkdownEditor selection bug

* Cleanup

* Update Markdown button styles

* Make Markdown button colors theme-conscious

* Fix merge conflict resolution mistake

* Fix broken import

* Delete package-lock.json

* Reset package-lock.json

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
2020-03-25 10:50:45 +00:00
Sergey a548d695f2 Doc: Update macOS troubleshooting for IOS build (#2898) 2020-03-25 09:31:05 +00:00
Aaron Murray 499f318192 Doc: Update text to match Desktop text (#2897) 2020-03-24 19:01:45 +00:00
Laurent Cozic 42ecf98344 Doc: Added build troubleshooting document 2020-03-24 17:22:44 +00:00
Caleb John 6f08e1e4ff Linux: Quit out of install script early if an ARM or 32 bit system is detected (#2881)
* Quit out of install script early if an arm system is detected

* improved error message
2020-03-24 17:08:07 +00:00
Helmut K. C. Tessarek 9524eb7e37 Update translations 2020-03-23 20:57:14 -04:00
Helmut K. C. Tessarek 84e478f8fe update de_DE.po 2020-03-23 20:56:09 -04:00
Arda Kılıçdağı 0cc77f99ac Translation: Update tr_TR.po (#2880)
* Turkish translations updated

* fullpaths updated

* Language string now respects the original one

* Line endings fixed

* Mysterious new lines cleaned

* Revert Readme

* Old translations added back
2020-03-23 20:46:59 -04:00
Ishant Gupta 622049dfad Mobile: Fixes #2859: Fixed code block styling in OLED theme (#2876) 2020-03-23 23:15:00 +00:00
Siddhant Sehgal 65bcc58261 Desktop: Fixes #2824: Fixed top margin of toolbar (#2828)
* Fixed_topmargin

* Fixed todolist hover

* Revert "Fixed todolist hover"

This reverts commit 38a4da622e.
2020-03-23 22:47:10 +00:00
Ishant Gupta 9749a2b9b7 Mobile: Resolves #2738: Auto-save after closing a note (#2782)
* latest changes merged

* fixed linting syntax
2020-03-23 22:34:13 +00:00
krzysiekwie 7b365194ba Translation: Update pl_PL.po (#2869) 2020-03-23 14:33:04 -04:00
Laurent Cozic 6e5c2730f1 Android release v1.0.324 2020-03-23 09:44:22 +00:00
Laurent Cozic 8d045f0c96 Revert "Mobile: Resolves #2286: Always show scrollbar in editor mode (#2594)"
This reverts commit 91d864bded.

To try to fix this: https://github.com/laurent22/joplin/issues/2856
2020-03-23 09:35:54 +00:00
Laurent Cozic c370358bd1 Merge branch 'master' of github.com:laurent22/joplin 2020-03-23 01:33:12 +00:00
Laurent Cozic 03e8d921d3 Desktop: Fixed a few WISIWYG issues with checkboxes 2020-03-23 01:32:28 +00:00
Laurent Cozic 6cf624c18d Delete linkToLocal.sh 2020-03-23 00:57:33 +00:00
Laurent Cozic 41acdce165 Desktop: Added support for checkboxes and fixed various issues with WYSIWYG editor 2020-03-23 00:47:25 +00:00
Guilherme Teixeira c607444c23 Translation: Update pt_BR.po (#2846) 2020-03-22 20:09:14 -04:00
Sergey 940198b9a0 Translation: Update ru_RU.po (#2839) 2020-03-22 20:08:03 -04:00
Laurent Cozic 9c3cf705c6 Update website 2020-03-22 22:24:37 +00:00
Laurent Cozic 6027725fae ios-v10.0.46 2020-03-22 20:07:49 +00:00
Laurent Cozic 054aa52bc8 Android release v1.0.323 2020-03-22 19:50:02 +00:00
Laurent Cozic f4a562bc3c Electron release v1.0.195 2020-03-22 19:43:12 +00:00
Laurent Cozic de8bf33ad9 Tools: Disabling tool checks for now as it is printing many unecessary messages to log 2020-03-22 19:41:23 +00:00
妙呀 159eaf7899 Translation: Update zh_CN.po (#2825)
Adjusted and added some Chinese simplified translation text
I like Joplin very much and hope to do my best
------------
调整和新增了部分中文简体翻译文本
非常喜欢Joplin,希望能尽绵薄之力
2020-03-21 14:34:31 -04:00
lighthousebulb 1bc045eb18 Translation: Update de_DE.po (#2806)
updated some translation strings
2020-03-21 14:33:40 -04:00
Laurent Cozic 0f934e48bc Revert "Desktop: Fixes #2467: Menu items were not disabled in viewer-only mode (#2576)"
Some items still need to be enabled so implementation needs to be
reviewed. Reverting for now.

This reverts commit 0be982c798.
2020-03-21 13:18:37 +00:00
Naveen M V 3ecd29d0b5 All: Fixes #2803: Remember last selected note (#2809)
* Fix : Remember last selected note

Fixes #2803

* Add unit test
2020-03-21 11:29:22 +00:00
Helmut K. C. Tessarek 42498842b5 translation fixes 2020-03-19 00:02:36 -04:00
Helmut K. C. Tessarek ed4fbf093d Update translations 2020-03-18 23:49:06 -04:00
StarFang208 96b19027ec Translation: Update it_IT.po (#2791)
* Update it_IT.po

New translated lines and translator's name fixed.

* fix it_IT.po

Added the removed lines.
2020-03-18 23:47:48 -04:00
nullpointer666 cdb8a1e98c Desktop: fix menu bar shortcut (Alt+E) while editing a note (Win) (#2776) 2020-03-17 12:49:36 -04:00
mic704b 8cd26c9380 All: Fix integration test harness issues. (#2723) 2020-03-16 13:30:54 +11:00
Helmut K. C. Tessarek 0863f0d564 Desktop: Add global shortcut to show/hide Joplin (#2653)
Previously it was possible to open Joplin by clicking on the tray icon.
This functionality is no longer available due to changes in Electron.

The following key combination will show or hide Joplin in the current workspace:

- macOS: `Cmd+Opt+J`
- Linux, Windows: `Ctrl+Alt+J`
2020-03-16 00:36:18 +00:00
mic704b 63a2f7b7a5 All: Fix calls to non-existent function (#2675)
* Fix calls to non-existent function

* Add tests.

* Fix travis lint problems.
2020-03-16 08:53:49 +11:00
PackElend 9b562276f3 updated ## Recommended steps
- replaced Development by Features in `4. Come up with project that you're interested in and discuss it in [Features category](https://discourse.joplinapp.org/c/features)`
-
2020-03-15 21:52:24 +01:00
mic704b a17e01793e All: Fix format of note timestamps (#2672)
* Correct format of timestamps during unserialization.

* Add tests.
2020-03-15 12:07:01 +00:00
mic704b 7fb061ea76 Desktop: Fix show-all-notes update bugs. (#2642) 2020-03-15 12:05:17 +00:00
gasolin 91d864bded Mobile: Resolves #2286: Always show scrollbar in editor mode (#2594)
* Mobile: show scrollbar in editor mode

* always show the scrollbar
2020-03-15 11:55:41 +00:00
Laurent Cozic 339d7d16c7 Desktop: Fix issue with tag not being displayed below note when it is created 2020-03-15 11:45:33 +00:00
Laurent Cozic 8e5762c3a3 Merge branch 'master' of github.com:laurent22/joplin 2020-03-15 10:19:46 +00:00
Rahul Mohata 50a811720f Mobile: Fixes #2695: Fixed colour of background in OLED dark theme (#2757) 2020-03-15 10:13:44 +00:00
Anjula Karunarathne c2e1c4c1e1 Desktop: Fixes #2700: Fix button label wrapping in toolbar (#2708) 2020-03-15 09:49:24 +00:00
Laurent Cozic e7b11a2d82 Desktop: Fixes #2618: Fixed renaming tag issue 2020-03-15 09:47:47 +00:00
Laurent Cozic 61d3582357 Restored note history feature by Naveen M V <naveenmv7@gmail.com> 2020-03-15 09:40:57 +00:00
Laurent Cozic 9e66219690 Revert "Desktop: Reolves #2409: Added arrows to go front and back through note history (#2563)"
Fixing merge issue...

This reverts commit d049b8846c.
2020-03-15 09:40:12 +00:00
Naveen M V d049b8846c Desktop: Reolves #2409: Added arrows to go front and back through note history (#2563) 2020-03-15 09:38:19 +00:00
RedDocMD bdd760f343 Desktop: Resolves #2703: Fast notebook deletion (#2730)
* Batch delete for Notebooks added

* Extended the Folder.delete() unit test

* Unit tests added for Note.batchDelete()
2020-03-14 21:01:45 +11:00
Helmut K. C. Tessarek 1ee88618e8 reencrypt -> re-encrypt 2020-03-13 20:52:28 -04:00
Laurent Cozic e399474b4e Tools: Apply "curly" eslint rule 2020-03-13 23:57:34 +00:00
Laurent Cozic e2e55b6e08 Tools: Apply eslint space-infix-ops rule 2020-03-13 23:52:40 +00:00
Laurent Cozic d0d2bad7f4 Tools: Enforce and apply eslint rules prefer-const and no-var 2020-03-13 23:46:14 +00:00
Laurent Cozic 92bee549a1 Electron release v1.0.194 2020-03-13 23:24:56 +00:00
Ishant Gupta 02121f66de Mobile: Resolves #2721: Added button to select all notes (#2744)
* added feature of select all and closes #2721

* added functionality of toggle select all button to deselect all notes
2020-03-13 22:41:56 +00:00
Ishant Gupta 115eb6f511 Mobile: Resolves #2715: Close sidebar when displaying error dialog (#2720)
* added a new close function to close sidebar for an error and fixed #2715

* changed function to inline call of dispatch fixes #2715
2020-03-13 19:58:17 +00:00
Rahul Mohata d208da577f iOS: Resolves #2701: Removed "Export debug report" button (#2704) 2020-03-13 19:55:26 +00:00
Runo Saduwa 62665899c6 Tools: Added build tools detection script (#2661)
* finished writing first script version

* added preinstall script

* removed white space and platform if statements

* remove error log

* removed install function

* corrected commands

* changed ls to list
2020-03-13 18:48:17 +00:00
Laurent Cozic 7640839f92 Let's leave that undocumented for now
Not the recommended way to create tags - there's the /tags and /notes/:id/tags for this
2020-03-13 18:46:38 +00:00
Yuvaraj J cda837247a API: Resolves #941: Add support for "tags" property for note PUT request (#2649)
* API: Fix updation of tags when updating a note

* Add test for fix updation of tags

* Rewrite unit test and change variable name

* Use consistent variables and function calls

* Use default function call and change variable

* Handle case when tags is empty string

* Restructure test cases and improve tags check

* Update documentation
2020-03-13 18:44:47 +00:00
Laurent Cozic 8e2ba0d963 Android release v1.0.322 2020-03-13 17:56:56 +00:00
Laurent Cozic f4958de885 All: Security: Added way to upgrade master key encryption and sync target encryption 2020-03-13 17:42:50 +00:00
Helmut K. C. Tessarek 3917e3469d Desktop: Add button to About box to copy Joplin's information to the clipboard (#2711)
* add button to About box to copy Joplin's information to the clipboard

On certain OS it is not possible to copy the text in the About window.
This change allows to copy that info to the Clipboard.

Due to some shortfalls in Electron, it is not possible to set `defaultId` and `cancelId` to 0.
(Actually one can set them to 0, but the result is not what one would expect.)
Thus I had to move the default `OK` button to the left.

I also added a hack to position the `OK` button approximately in the middle of the dialog box (if the copyLabel is not longer than 14 characters).

* remove hack to position button

* add a new bridge function showMessageBox

The function returns the index of the clicked button.

* we don't need the first 3 lines (product name and copyright)
2020-03-12 23:13:18 +00:00
3921 changed files with 564844 additions and 229073 deletions
+9
View File
@@ -0,0 +1,9 @@
**/node_modules
Assets/
.git/
_releases/
packages/app-desktop
packages/app-cli
packages/app-mobile
packages/app-clipper
packages/generator-joplin
+9
View File
@@ -0,0 +1,9 @@
# Example of local config, for development:
#
# JOPLIN_BASE_URL=http://localhost:22300
# JOPLIN_PORT=22300
# Example of config for production:
#
# JOPLIN_BASE_URL=https://example.com/joplin
# JOPLIN_PORT=22300
+1630 -63
View File
File diff suppressed because it is too large Load Diff
+119 -48
View File
@@ -1,12 +1,13 @@
module.exports = {
'root': true,
'env': {
'browser': true,
'es6': true,
'node': true,
},
"parser": "@typescript-eslint/parser",
'parser': '@typescript-eslint/parser',
'extends': ['eslint:recommended'],
"settings": {
'settings': {
'react': {
'version': '16.12',
},
@@ -15,7 +16,8 @@ module.exports = {
'Atomics': 'readonly',
'SharedArrayBuffer': 'readonly',
// Jasmine variables
// Jest variables
'test': 'readonly',
'expect': 'readonly',
'describe': 'readonly',
'it': 'readonly',
@@ -23,7 +25,7 @@ module.exports = {
'afterAll': 'readonly',
'beforeEach': 'readonly',
'afterEach': 'readonly',
'jasmine': 'readonly',
'jest': 'readonly',
// React Native variables
'__DEV__': 'readonly',
@@ -33,70 +35,139 @@ module.exports = {
'chrome': 'readonly',
'browser': 'readonly',
// Server admin UI global variables
'onDocumentReady': 'readonly',
'tinymce': 'readonly',
},
'parserOptions': {
'ecmaVersion': 2018,
"ecmaFeatures": {
"jsx": true,
},
"sourceType": "module",
'ecmaFeatures': {
'jsx': true,
},
'sourceType': 'module',
},
'rules': {
// -------------------------------
// Code correctness
// -------------------------------
"react/jsx-uses-react": "error",
"react/jsx-uses-vars": "error",
"no-unused-vars": "error",
"no-constant-condition": 0,
"no-prototype-builtins": 0,
'react/jsx-uses-react': 'error',
'react/jsx-uses-vars': 'error',
'no-unused-vars': ['error', { 'argsIgnorePattern': '^_' }],
'@typescript-eslint/no-unused-vars': ['error', { 'argsIgnorePattern': '^_' }],
'@typescript-eslint/explicit-member-accessibility': 'off',
'no-constant-condition': 0,
'no-prototype-builtins': 0,
// This error is always a false positive so far since it detects
// possible race conditions in contexts where we know it cannot happen.
"require-atomic-updates": 0,
'require-atomic-updates': 0,
'prefer-const': ['error'],
'no-var': ['error'],
'no-new-func': ['error'],
'import/prefer-default-export': ['error'],
// This rule should not be enabled since it matters in what order
// imports are done, in particular in relation to the shim.setReact
// call, which should be done first, but this rule might move it down.
// 'import/first': ['error'],
'no-array-constructor': ['error'],
'radix': ['error'],
// Warn only for now because fixing everything would take too much
// refactoring, but new code should try to stick to it.
'complexity': ['warn', { max: 10 }],
// Checks rules of Hooks
"react-hooks/rules-of-hooks": "error",
'react-hooks/rules-of-hooks': 'error',
// Checks effect dependencies
"react-hooks/exhaustive-deps": "warn",
// Disable because of this: https://github.com/facebook/react/issues/16265
// "react-hooks/exhaustive-deps": "warn",
// -------------------------------
// Formatting
// -------------------------------
"space-in-parens": ["error", "never"],
"semi": ["error", "always"],
"eol-last": ["error", "always"],
"quotes": ["error", "single"],
"indent": ["error", "tab"],
"comma-dangle": ["error", "always-multiline"],
"no-trailing-spaces": "error",
"linebreak-style": ["error", "unix"],
"prefer-template": ["error"],
"template-curly-spacing": ["error", "never"],
"object-curly-spacing": ["error", "always"],
"array-bracket-spacing": ["error", "never"],
"key-spacing": ["error", {
"beforeColon": false,
"afterColon": true,
"mode": "strict"
'space-in-parens': ['error', 'never'],
'space-infix-ops': ['error'],
'curly': ['error', 'multi-line', 'consistent'],
'semi': ['error', 'always'],
'eol-last': ['error', 'always'],
'quotes': ['error', 'single'],
'indent': ['error', 'tab'],
'comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'imports': 'always-multiline',
'exports': 'always-multiline',
'functions': 'never',
}],
"block-spacing": ["error"],
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
"no-spaced-func": ["error"],
"func-call-spacing": ["error"],
"space-before-function-paren": ["error", {
"anonymous": "never",
"named": "never",
"asyncArrow": "always"
'no-trailing-spaces': 'error',
'linebreak-style': ['error', 'unix'],
'prefer-template': ['error'],
'template-curly-spacing': ['error', 'never'],
'object-curly-spacing': ['error', 'always'],
'array-bracket-spacing': ['error', 'never'],
'key-spacing': ['error', {
'beforeColon': false,
'afterColon': true,
'mode': 'strict',
}],
"multiline-comment-style": ["error", "separate-lines"],
"space-before-blocks": "error",
"spaced-comment": ["error", "always"],
"keyword-spacing": ["error", { "before": true, "after": true }]
'block-spacing': ['error'],
'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
'no-spaced-func': ['error'],
'func-call-spacing': ['error'],
'space-before-function-paren': ['error', {
'anonymous': 'never',
'named': 'never',
'asyncArrow': 'always',
}],
'multiline-comment-style': ['error', 'separate-lines'],
'space-before-blocks': 'error',
'spaced-comment': ['error', 'always'],
'keyword-spacing': ['error', { 'before': true, 'after': true }],
},
"plugins": [
"react",
"@typescript-eslint",
"react-hooks"
'plugins': [
'react',
'@typescript-eslint',
'react-hooks',
'import',
],
'overrides': [
{
// enable the rule specifically for TypeScript files
'files': ['*.ts', '*.tsx'],
'parserOptions': {
// Required for @typescript-eslint/no-floating-promises
'project': './tsconfig.eslint.json',
},
'rules': {
// Warn only because it would make it difficult to convert JS classes to TypeScript, unless we
// make everything public which is not great. New code however should specify member accessibility.
'@typescript-eslint/explicit-member-accessibility': ['warn'],
'@typescript-eslint/type-annotation-spacing': ['error', { 'before': false, 'after': true }],
'@typescript-eslint/comma-dangle': ['error', {
'arrays': 'always-multiline',
'objects': 'always-multiline',
'imports': 'always-multiline',
'exports': 'always-multiline',
'enums': 'always-multiline',
'generics': 'always-multiline',
'tuples': 'always-multiline',
'functions': 'never',
}],
'@typescript-eslint/semi': ['error', 'always'],
'@typescript-eslint/member-delimiter-style': ['error', {
'multiline': {
'delimiter': 'semi',
'requireLast': true,
},
'singleline': {
'delimiter': 'semi',
'requireLast': false,
},
}],
'@typescript-eslint/no-floating-promises': ['error'],
},
},
],
};
+3 -2
View File
@@ -1,8 +1,9 @@
---
name: "🐛 Bug Report"
name: "\U0001F41B Bug Report"
about: Report a reproducible bug or regression in Joplin.
title: ''
labels: 'bug'
labels: bug
assignees: ''
---
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: "\U0001F914 Feature requests and support"
url: https://discourse.joplinapp.org/
about: I have a question or feature request …
-29
View File
@@ -1,29 +0,0 @@
---
name: "🤔 Questions and Help"
about: The issue tracker is not for questions. Please ask questions on https://discourse.joplinapp.org/.
title: ''
labels: 'invalid'
---
⚠🚨⛔ The issue tracker is not for questions. ⛔🚨⚠
As it happens, support requests that are created as issues are likely to be closed. We want to make sure you are able to find the help you seek.
## Questions and Help
Please read the [documentation](https://joplinapp.org/) and [FAQ](https://joplinapp.org/faq/) first.
### https://discourse.joplinapp.org/
If you have still questions related to Joplin, please open a topic in the [forum](https://discourse.joplinapp.org/).
You can use your GitHub credentials to login to the forum.
## Links
- Documentation: https://joplinapp.org
- FAQ: https://joplinapp.org/faq/
- Forum: https://discourse.joplinapp.org
- How to enable end-to-end encryption: https://joplinapp.org/e2ee/
- API documentation: https://joplinapp.org/api/
- How to enable debug mode: https://joplinapp.org/debugging/
+12 -2
View File
@@ -2,14 +2,24 @@
Please prefix the title with the platform you are targetting:
Here are some examples of good titles:
- Desktop: Resolves #123: Added new setting to change font
- Mobile, Desktop: Fixes #456: Fixed config screen error
- All: Resolves #777: Made synchronisation faster
And here's an explanation of the title format:
- "Desktop" for the Windows/macOS/Linux app (Electron app)
- "Mobile" for the mobile app (or "Android" / "iOS" if the pull request only applies to one of the mobile platforms)
- "CLI" for the CLI app
If it's two platforms, separate them with commas - "Desktop, Mobile" or if it's for all platforms, prefix with "All".
If it's not related to any platform (such as a translation, change to the documentation, etc.), simply don't add a platform.
For example: "Desktop: Added new setting to change font", or "Mobile: Fixed config screen error"
Then please append the issue that you've addressed or fixed. Use "Resolves #123" for new features or improvements and "Fixes #123" for bug fixes.
PLEASE READ THE GUIDE FIRST: https://github.com/laurent22/joplin/blob/master/CONTRIBUTING.md
AND PLEASE READ THE GUIDE: https://github.com/laurent22/joplin/blob/dev/CONTRIBUTING.md
-->
+2 -5
View File
@@ -1,18 +1,15 @@
# Configuration for probot-stale - https://github.com/probot/stale
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 90
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "good first issue"
- "essential"
- "essential-reviewed"
- "help wanted"
- "nice to have"
- "upstream"
- "backlog"
- "high"
- "spec"
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
+1611 -50
View File
File diff suppressed because it is too large Load Diff
+47 -21
View File
@@ -1,5 +1,5 @@
# Only build tags (Doesn't work - doesn't build anything)
if: tag IS present OR type = pull_request
if: tag IS present OR type = pull_request OR branch = dev
rvm: 2.3.3
@@ -9,26 +9,36 @@ rvm: 2.3.3
branches:
only:
- master
- dev
- /^v\d+\.\d+(\.\d+)?(-\S*)?$/
matrix:
include:
- os: osx
osx_image: xcode9.0
osx_image: xcode12
language: node_js
node_js: "8"
env:
- ELECTRON_CACHE=$HOME/.cache/electron
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
node_js: "12"
cache:
npm: false
# Cache was disabled because when changing from node_js 10 to node_js 12
# it was still using build files from Node 10 when building SQLite which
# was making it fail. Might be ok to re-enable later on, although it doesn't
# make build that much faster.
#
# env:
# - ELECTRON_CACHE=$HOME/.cache/electron
# - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
- os: linux
sudo: required
dist: trusty
language: node_js
node_js: "8"
env:
- ELECTRON_CACHE=$HOME/.cache/electron
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
node_js: "12"
cache:
npm: false
# env:
# - ELECTRON_CACHE=$HOME/.cache/electron
# - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
# cache:
# directories:
@@ -42,6 +52,8 @@ before_install:
# Silence apt-get update errors (for example when a module doesn't exist) since
# otherwise it will make the whole build fails, even though all we need is yarn.
# libsecret-1-dev is required for keytar - https://github.com/atom/node-keytar
- |
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
HOMEBREW_NO_AUTO_UPDATE=1 brew install yarn
@@ -51,27 +63,29 @@ before_install:
sudo apt-get update || true
sudo apt-get install -y yarn
sudo apt-get install -y gettext
sudo apt-get install -y libsecret-1-dev
fi
script:
- |
# Prints some env variables
echo "TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH"
echo "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
echo "TRAVIS_TAG=$TRAVIS_TAG"
# Install tools
npm install
cd Tools
npm install
cd ..
# Run test units.
# Only do it for pull requests because Travis randomly fails to run them
# and that would break the desktop release.
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
cd CliClient
npm run test
if [ "$TRAVIS_PULL_REQUEST" != "false" ] || [ "$TRAVIS_BRANCH" = "dev" ]; then
npm run test-ci
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
fi
cd ..
fi
# Run linter for pull requests only - this is so that
@@ -89,7 +103,7 @@ script:
# tool like poedit. Doing it for Linux only is sufficient.
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
if [ "$TRAVIS_OS_NAME" != "osx" ]; then
node Tools/validate-translation.js
node packages/tools/validate-translation.js
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
@@ -98,7 +112,7 @@ script:
fi
# Find out if we should run the build or not. Electron-builder gets stuck when
# builing PRs so we disable it in this case. The Linux build should provide
# building PRs so we disable it in this case. The Linux build should provide
# enough info if the app builds or not.
# https://github.com/electron-userland/electron-builder/issues/4263
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
@@ -108,5 +122,17 @@ script:
fi
# Prepare the Electron app and build it
cd ElectronClient
USE_HARD_LINKS=false yarn dist
#
# If the current tag is a desktop release tag (starts with "v", such as
# "v1.4.7"), we build and publish to github
#
# Otherwise we only build but don't publish to GitHub. It helps finding
# out any issue in pull requests and dev branch.
cd packages/app-desktop
if [[ $TRAVIS_TAG = v* ]]; then
USE_HARD_LINKS=false npm run dist
else
USE_HARD_LINKS=false npm run dist -- --publish=never
fi

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

File diff suppressed because one or more lines are too long
+36
View File
@@ -0,0 +1,36 @@
function camelCaseToDots(s) {
const output = [];
for (let i = 0; i < s.length; i++) {
const c = s[i];
if (c === c.toLowerCase() || i === 0) {
output.push(c.toLowerCase());
} else {
output.push('.');
output.push(c.toLowerCase());
}
}
return output.join('');
}
module.exports = {
jpFormatClassName: function(className) {
if (className.indexOf('Joplin') !== 0 || className.indexOf(' ') >= 0) return className;
const p = className.substr(6);
if (p === '') return 'joplin';
return `joplin.${camelCaseToDots(p)
.replace(/menu\.items/, 'menuItems')
.replace(/toolbar\.buttons/, 'toolbarButtons')}`;
},
jpIsAllowedGroup: function(name) {
return name !== 'Constructors';
},
jsIsNotKindVariable: function(classes) {
if (!classes) return true;
return classes.indexOf('tsd-kind-variable') < 0;
},
};
+3
View File
@@ -0,0 +1,3 @@
# Joplin Plugin Documentation
Welcome to Joplin Plugin Documentation
+51
View File
@@ -0,0 +1,51 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{#ifCond model.name '==' project.name}}{{project.name}}{{else}}{{jpFormatClassName model.name}} | {{project.name}}{{/ifCond}}</title>
<meta name="description" content="Documentation for {{project.name}}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="{{relativeURL "assets/css/main.css"}}">
</head>
<body>
{{> header}}
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
{{{contents}}}
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
{{#each navigation.children}}
{{> navigation}}
{{/each}}
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
{{#each toc.children}}
{{> toc.root}}
{{/each}}
</ul>
</nav>
</div>
</div>
</div>
{{> footer}}
<div class="overlay"></div>
<script src="{{relativeURL "assets/js/main.js"}}"></script>
{{> analytics}}
</body>
</html>
@@ -0,0 +1,11 @@
{{#if settings.gaID}}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{settings.gaID}}', '{{settings.gaSite}}');
ga('send', 'pageview');
</script>
{{/if}}
@@ -0,0 +1,18 @@
{{#if parent}}
{{#with parent}}{{> breadcrumb}}{{/with}}
<li>
{{#if url}}
<a href="{{relativeURL url}}">{{jpFormatClassName name}}</a>
{{else}}
<span>{{jpFormatClassName name}}</span>
{{/if}}
</li>
{{else}}
<!--
{{#if url}}
<li>
<a href="{{relativeURL url}}">Globals</a>
</li>
{{/if}}
-->
{{/if}}
@@ -0,0 +1,22 @@
{{#with comment}}
{{#if hasVisibleComponent}}
<div class="tsd-comment tsd-typography">
{{#if shortText}}
<div class="lead">
{{#markdown}}{{{shortText}}}{{/markdown}}
</div>
{{/if}}
{{#if text}}
{{#markdown}}{{{text}}}{{/markdown}}
{{/if}}
{{#if tags}}
<dl class="tsd-comment-tags">
{{#each tags}}
<dt>{{tagName}}</dt>
<dd>{{#markdown}}{{{text}}}{{/markdown}}</dd>
{{/each}}
</dl>
{{/if}}
</div>
{{/if}}
{{/with}}
+23
View File
@@ -0,0 +1,23 @@
<!-- JOPLINCHANGE
<footer{{#unless settings.hideGenerator}} class="with-border-bottom"{{/unless}}>
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
{{#each legend}}
<ul class="tsd-legend">
{{#each .}}
<li class="{{#compact}}{{#each classes}} {{.}}{{/each}}{{/compact}}"><span class="tsd-kind-icon">{{name}}</span></li>
{{/each}}
</ul>
{{/each}}
</div>
</div>
</footer>
{{#unless settings.hideGenerator}}
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
{{/unless}}
-->
+71
View File
@@ -0,0 +1,71 @@
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="{{relativeURL "assets/js/search.json"}}" data-base="{{relativeURL "./"}}">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="{{relativeURL "classes/joplin.html"}}" class="title">{{project.name}}</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
{{#unless settings.excludeExternals}}
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
{{/unless}}
{{#unless settings.excludeNotExported}}
<input type="checkbox" id="tsd-filter-only-exported" />
<label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
{{/unless}}
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
{{#with model}}{{> breadcrumb}}{{/with}}
</ul>
<h1>{{#compact}}
<!-- {{model.kindString}}&nbsp; -->
{{jpFormatClassName model.name}}
{{#if model.typeParameters}}
&lt;
{{#each model.typeParameters}}
{{#if @index}},&nbsp;{{/if}}
{{name}}
{{/each}}
&gt;
{{/if}}
{{/compact}}</h1>
</div>
</div>
</header>
@@ -0,0 +1,17 @@
<ul class="tsd-hierarchy">
{{#each types}}
<li>
{{#if ../isTarget}}
<span class="target">{{this}}</span>
{{else}}
{{#compact}}{{> type}}{{/compact}}
{{/if}}
{{#if @last}}
{{#with ../next}}
{{> hierarchy}}
{{/with}}
{{/if}}
</li>
{{/each}}
</ul>
+32
View File
@@ -0,0 +1,32 @@
{{#if groups}}
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
{{#each groups}}
<section class="tsd-index-section {{cssClasses}}">
{{#if categories}}
{{#each categories}}
<h3>{{#if title}}{{title}} {{/if}}{{../title}}</h3>
<ul class="tsd-index-list">
{{#each children}}
<li class="{{cssClasses}}"><a href="{{relativeURL url}}" class="tsd-kind-icon">{{#if name}}{{{wbr name}}}{{else}}<em>{{{wbr kindString}}}</em>{{/if}}</a></li>
{{/each}}
</ul>
{{/each}}
{{else}}
{{#if (jpIsAllowedGroup title)}}
<h3>{{title}}</h3>
<ul class="tsd-index-list">
{{#each children}}
<li class="{{cssClasses}}"><a href="{{relativeURL url}}" class="tsd-kind-icon">{{#if name}}{{{wbr name}}}{{else}}<em>{{{wbr kindString}}}</em>{{/if}}</a></li>
{{/each}}
</ul>
{{/if}}
{{/if}}
</section>
{{/each}}
</div>
</section>
</section>
{{/if}}
@@ -0,0 +1,36 @@
<div class="tsd-signature tsd-kind-icon">{{#compact}}
{{{wbr name}}}
{{#if typeParameters}}
&lt;
{{#each typeParameters}}
{{#if @index}},&nbsp;{{/if}}
{{name}}
{{/each}}
&gt;
{{/if}}
<span class="tsd-signature-symbol">{{#if isOptional}}?{{/if}}:</span>&nbsp;{{#with type}}{{>type}}{{/with}}
{{#if defaultValue}}
<span class="tsd-signature-symbol">
&nbsp;=&nbsp;
{{defaultValue}}
</span>
{{/if}}
{{/compact}}</div>
{{> member.sources}}
{{> comment}}
{{#if typeParameters}}
<h4 class="tsd-type-parameters-title">Type parameters</h4>
{{> typeParameters}}
{{/if}}
{{#if type.declaration}}
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
{{#with type.declaration}}
{{> parameter}}
{{/with}}
</div>
{{/if}}
@@ -0,0 +1,37 @@
<ul class="tsd-signatures {{cssClasses}}">
{{#if getSignature}}
{{#with getSignature}}
<li class="tsd-signature tsd-kind-icon">{{#compact}}
<span class="tsd-signature-symbol">get</span>&nbsp;
{{../name}}
{{> member.signature.title hideName=true }}
{{/compact}}</li>
{{/with}}
{{/if}}
{{#if setSignature}}
{{#with setSignature}}
<li class="tsd-signature tsd-kind-icon">{{#compact}}
<span class="tsd-signature-symbol">set</span>&nbsp;
{{../name}}
{{> member.signature.title hideName=true }}
{{/compact}}</li>
{{/with}}
{{/if}}
</ul>
<ul class="tsd-descriptions">
{{#if getSignature}}
{{#with getSignature}}
<li class="tsd-description">
{{> member.signature.body }}
</li>
{{/with}}
{{/if}}
{{#if setSignature}}
{{#with setSignature}}
<li class="tsd-description">
{{> member.signature.body }}
</li>
{{/with}}
{{/if}}
</ul>
+24
View File
@@ -0,0 +1,24 @@
<section class="tsd-panel tsd-member {{cssClasses}}">
<a name="{{anchor}}" class="tsd-anchor"></a>
{{#if name}}
<h3>{{#each flags}}<span class="tsd-flag ts-flag{{this}}">{{this}}</span> {{/each}}{{{wbr name}}}</h3>
{{/if}}
{{#if signatures}}
{{> member.signatures}}
{{else}}{{#if hasGetterOrSetter}}
{{> member.getterSetter}}
{{else}}{{#if isReference}}
{{> member.reference}}
{{else}}
{{> member.declaration}}
{{/if}}{{/if}}{{/if}}
{{#each groups}}
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
{{/each}}
</section>
@@ -0,0 +1,11 @@
{{#with tryGetTargetReflectionDeep}}
{{#ifCond ../name '===' name}}
Re-exports <a href="{{relativeURL url}}">{{name}}</a>
{{else if flags.isExported}}
Renames and re-exports <a href="{{relativeURL url}}">{{name}}</a>
{{else}}
Renames and exports <a href="{{relativeURL url}}">{{name}}</a>
{{/ifCond}}
{{else}}
Re-exports {{name}}
{{/with}}
@@ -0,0 +1,58 @@
{{#unless hideSources}}
{{> member.sources}}
{{/unless}}
{{> comment}}
{{#if typeParameters}}
<h4 class="tsd-type-parameters-title">Type parameters</h4>
{{> typeParameters}}
{{/if}}
{{#if parameters}}
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
{{#each parameters}}
<li>
<h5>{{#compact}}
{{#each flags}}
<span class="tsd-flag ts-flag{{this}}">{{this}}</span>&nbsp;
{{/each}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}
{{name}}:&nbsp;
{{#with type}}{{>type}}{{/with}}
{{#if defaultValue}}
<span class="tsd-signature-symbol">
&nbsp;=&nbsp;
{{defaultValue}}
</span>
{{/if}}
{{/compact}}</h5>
{{> comment}}
{{#if type.declaration}}
{{#with type.declaration}}
{{> parameter}}
{{/with}}
{{/if}}
</li>
{{/each}}
</ul>
{{/if}}
<!-- JOPLINCHANGE
{{#if type}}
<h4 class="tsd-returns-title">Returns {{#compact}}{{#with type}}{{>type}}{{/with}}{{/compact}}</h4>
{{#if comment.returns}}
{{#markdown}}{{{comment.returns}}}{{/markdown}}
{{/if}}
{{#if type.declaration}}
{{#with type.declaration}}
{{> parameter}}
{{/with}}
{{/if}}
{{/if}}
-->
@@ -0,0 +1,32 @@
{{#unless hideName}}{{{wbr name}}}{{/unless}}
{{#if typeParameters}}
&lt;
{{#each typeParameters}}
{{#if @index}},&nbsp;{{/if}}
{{name}}
{{/each}}
&gt;
{{/if}}
<span class="tsd-signature-symbol">(</span>
{{#each parameters}}
{{#if @index}},&nbsp;{{/if}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}
{{name}}
<span class="tsd-signature-symbol">
{{#if flags.isOptional}}?{{/if}}
{{#if defaultValue}}?{{/if}}
:&nbsp;
</span>
{{#with type}}{{>type}}{{/with}}
{{/each}}
<span class="tsd-signature-symbol">)</span>
{{#if type}}
{{#if arrowStyle}}
<span class="tsd-signature-symbol"> =&gt; </span>
{{else}}
<span class="tsd-signature-symbol">: </span>
{{/if}}
{{#with type}}
{{>type}}
{{/with}}
{{/if}}
@@ -0,0 +1,13 @@
<ul class="tsd-signatures {{cssClasses}}">
{{#each signatures}}
<li class="tsd-signature tsd-kind-icon">{{#compact}}{{> member.signature.title }}{{/compact}}</li>
{{/each}}
</ul>
<ul class="tsd-descriptions">
{{#each signatures}}
<li class="tsd-description">
{{> member.signature.body }}
</li>
{{/each}}
</ul>
@@ -0,0 +1,11 @@
<aside class="tsd-sources">
{{#if implementationOf}}
<p>Implementation of {{#with implementationOf}}{{> typeAndParent}}{{/with}}</p>
{{/if}}
{{#if inheritedFrom}}
<p>Inherited from {{#with inheritedFrom}}{{> typeAndParent}}{{/with}}</p>
{{/if}}
{{#if overwrites}}
<p>Overrides {{#with overwrites}}{{> typeAndParent}}{{/with}}</p>
{{/if}}
</aside>
@@ -0,0 +1,23 @@
{{#if categories}}
{{#each categories}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
<h2>{{#if title}}{{title}} {{/if}}{{../title}}</h2>
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
</section>
{{/each}}
{{else}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
{{#if (jpIsAllowedGroup title)}}
<h2>{{title}}</h2>
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
{{/if}}
</section>
{{/if}}
@@ -0,0 +1,20 @@
{{#if categories}}
{{#each categories}}
{{#unless allChildrenHaveOwnDocument}}
<section class="tsd-panel-group tsd-member-group {{cssClasses}}">
<h2>{{title}}</h2>
{{#each children}}
{{#unless hasOwnDocument}}
{{> member}}
{{/unless}}
{{/each}}
</section>
{{/unless}}
{{/each}}
{{else}}
{{#each groups}}
{{#unless allChildrenHaveOwnDocument}}
{{> members.group}}
{{/unless}}
{{/each}}
{{/if}}
@@ -0,0 +1,26 @@
{{#if isVisible}}
{{#if isLabel}}
<li class="label {{cssClasses}}">
<span>{{{wbr title}}}</span>
</li>
{{else}}
{{#if isGlobals}}
<li class="globals {{#if isInPath}}current{{/if}} {{cssClasses}}">
<a href="{{relativeURL url}}"><em>{{{wbr title}}}</em></a>
</li>
{{else}}
<li class="{{#if isInPath}}current{{/if}} {{cssClasses}}">
<a href="{{relativeURL url}}">{{{wbr title}}}</a>
{{#if isInPath}}
{{#if children}}
<ul>
{{#each children}}
{{> navigation}}
{{/each}}
</ul>
{{/if}}
{{/if}}
</li>
{{/if}}
{{/if}}
{{/if}}
@@ -0,0 +1,83 @@
<ul class="tsd-parameters">
{{#if signatures}}
<li class="tsd-parameter-signature">
<ul class="tsd-signatures {{cssClasses}}">
{{#each signatures}}
<li class="tsd-signature tsd-kind-icon">{{#compact}}
{{> member.signature.title hideName=true }}
{{/compact}}</li>
{{/each}}
</ul>
<ul class="tsd-descriptions">
{{#each signatures}}
<li class="tsd-description">{{> member.signature.body hideSources=true }}</li>
{{/each}}
</ul>
</li>
{{/if}}
{{#if indexSignature}}
<li class="tsd-parameter-index-signature">
<h5>{{#compact}}
<span class="tsd-signature-symbol">[</span>
{{#each indexSignature.parameters}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}{{name}}:&nbsp;{{#with type}}{{>type}}{{/with}}
{{/each}}
<span class="tsd-signature-symbol">]:&nbsp;</span>
{{#with indexSignature.type}}{{>type}}{{/with}}
{{/compact}}</h5>
{{#with indexSignature}}
{{> comment}}
{{/with}}
{{#if indexSignature.type.declaration}}
{{#with indexSignature.type.declaration}}
{{> parameter}}
{{/with}}
{{/if}}
</li>
{{/if}}
{{#each children}}
<li class="tsd-parameter">
{{#if signatures}}
<h5>{{#compact}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}
{{{wbr name}}}
<span class="tsd-signature-symbol">
{{#if isOptional}}?{{/if}}
:&nbsp;
</span>
function
{{/compact}}</h5>
{{> member.signatures}}
{{else}}
<h5>{{#compact}}
{{#each flags}}
<span class="tsd-flag ts-flag{{this}}">{{this}}</span>&nbsp;
{{/each}}
{{#if flags.isRest}}<span class="tsd-signature-symbol">...</span>{{/if}}
{{{wbr name}}}
<span class="tsd-signature-symbol">
{{#if flags.isOptional}}?{{/if}}
:&nbsp;
</span>
{{#with type}}{{>type}}{{/with}}
{{/compact}}</h5>
{{> comment}}
{{#if children}}
{{> parameter}}
{{/if}}
{{#if type.declaration}}
{{#with type.declaration}}
{{> parameter}}
{{/with}}
{{/if}}
{{/if}}
</li>
{{/each}}
</ul>
+10
View File
@@ -0,0 +1,10 @@
<li class="{{#if isInPath}}current{{/if}} {{cssClasses}}">
<a href="{{relativeURL url}}" class="tsd-kind-icon">{{{wbr title}}}</a>
{{#if children}}
<ul>
{{#each children}}
{{> toc}}
{{/each}}
</ul>
{{/if}}
</li>
@@ -0,0 +1,21 @@
{{#if isInPath}}
</ul>
<ul class="current">
{{/if}}
{{#if (jsIsNotKindVariable cssClasses)}}
<li class="{{#if isInPath}}current{{/if}} {{cssClasses}}">
<a href="{{relativeURL url}}" class="tsd-kind-icon">{{{jpFormatClassName title}}}</a>
{{#if children}}
<ul>
{{#each children}}
{{> toc}}
{{/each}}
</ul>
{{/if}}
</li>
{{#if isInPath}}
</ul>
<ul class="after-current">
{{/if}}
{{/if}}
+211
View File
@@ -0,0 +1,211 @@
{{! Each type gets its own inline helper to determine how it is rendered. }}
{{! The name of the helper is the value of the 'type' property on the type.}}
{{!
The type helper accepts an optional needsParens parameter that is checked
if an inner type may result in invalid output without them. For example:
1 | 2[] !== (1 | 2)[]
() => 1 | 2 !== (() => 1) | 2
}}
{{#*inline 'array'}}
{{#with elementType}}
{{> type needsParens=true}}
<span class="tsd-signature-symbol">[]</span>
{{/with}}
{{/inline}}
{{#*inline 'conditional'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#with checkType}}
{{> type needsParens=true}}
{{/with}}
<span class="tsd-signature-symbol"> extends </span>
{{#with extendsType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol"> ? </span>
{{#with trueType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol"> : </span>
{{#with falseType}}
{{> type}}
{{/with}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/inline}}
{{#*inline 'indexedAccess'}}
{{#with objectType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol">[</span>
{{#with indexType}}
{{> type}}
{{/with}}
<span class="tsd-signature-symbol">]</span>
{{/inline}}
{{#*inline 'inferred'}}
<span class="tsd-signature-symbol">infer </span> {{name}}
{{/inline}}
{{#*inline 'intersection'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#each types}}
{{#unless @first}}
<span class="tsd-signature-symbol"> &amp; </span>
{{/unless}}
{{> type}}
{{/each}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/inline}}
{{#*inline 'intrinsic'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#*inline 'predicate'}}
{{#if asserts}}
<span class="tsd-signature-symbol">asserts</span>
{{/if}}
<span class="tsd-signature-type">{{name}}</span>
{{#if targetType}}
<span class="tsd-signature-symbol"> is </span>
{{#with targetType}}
{{>type}}
{{/with}}
{{/if}}
{{/inline}}
{{#*inline 'query'}}
<span class="tsd-signature-symbol">typeof </span>
{{#with queryType}}
{{> type}}
{{/with}}
{{/inline}}
{{#*inline 'reference'}}
{{#if reflection}}
<a href="{{relativeURL reflection.url}}" class="tsd-signature-type">
{{jpFormatClassName reflection.name}}
</a>
{{else}}
<span class="tsd-signature-type">{{jpFormatClassName name}}</span>
{{/if}}
{{#if typeArguments}}
<span class="tsd-signature-symbol">&lt;</span>
{{#each typeArguments}}
{{#unless @first}}
<span class="tsd-signature-symbol">, </span>
{{/unless}}
{{> type}}
{{/each}}
<span class="tsd-signature-symbol">&gt;</span>
{{/if}}
{{/inline}}
{{#*inline 'reflection'}}
{{#if declaration.children}} {{! object literal }}
<span class="tsd-signature-symbol">{ </span>
{{#each declaration.children}}
{{#unless @first}}
<span class="tsd-signature-symbol">; </span>
{{/unless}}
{{name}}
{{#if flags.isOptional }}
<span class="tsd-signature-symbol">?: </span>
{{else}}
<span class="tsd-signature-symbol">: </span>
{{/if}}
{{#with type}}
{{> type}}
{{else}}
<span class="tsd-signature-type">any</span>
{{/with}}
{{/each}}
<span class="tsd-signature-symbol"> }</span>
{{else if declaration.signatures}}
{{#if (lookup declaration.signatures 1) }} {{! more than one signature}}
<span class="tsd-signature-symbol">{ </span>
{{#each declaration.signatures}}
{{> member.signature.title hideName=true}}
{{#unless @last}}
<span class="tsd-signature-symbol">; </span>
{{/unless}}
{{/each}}
<span class="tsd-signature-symbol"> }</span>
{{else}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#with (lookup declaration.signatures '0') }}
{{> member.signature.title hideName=true arrowStyle=true}}
{{/with}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/if}}
{{else}}
<span class="tsd-signature-symbol">{}</span>
{{/if}}
{{/inline}}
{{#*inline 'stringLiteral'}}
<span class="tsd-signature-type">"{{value}}"</span>
{{/inline}}
{{#*inline 'tuple'}}
<span class="tsd-signature-symbol">[</span>
{{#each elements}}
{{#unless @first}}
<span class="tsd-signature-symbol">, </span>
{{/unless}}
{{> type}}
{{/each}}
<span class="tsd-signature-symbol">]</span>
{{/inline}}
{{#*inline 'typeOperator'}}
<span class="tsd-signature-symbol">{{operator}} </span>
{{#with target}}
{{> type}}
{{/with}}
{{/inline}}
{{#*inline 'typeParameter'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#*inline 'union'}}
{{#if needsParens}}
<span class="tsd-signature-symbol">(</span>
{{/if}}
{{#each types}}
{{#unless @first}}
<span class="tsd-signature-symbol"> | </span>
{{/unless}}
{{> type needsParens=true}}
{{/each}}
{{#if needsParens}}
<span class="tsd-signature-symbol">)</span>
{{/if}}
{{/inline}}
{{#*inline 'unknown'}}
<span class="tsd-signature-type">{{name}}</span>
{{/inline}}
{{#if this}}
{{> (lookup . 'type') }}
{{else}}
<span class="tsd-signature-type">void</span>
{{/if}}
@@ -0,0 +1,42 @@
{{#compact}}
{{#if this}}
{{#if elementType}}
{{#with elementType}}
{{> typeAndParent}}
{{/with}}
[]
{{else}}
{{#if reflection}}
{{#ifSignature reflection}}
{{#if reflection.parent.parent.url}}
<a href="{{relativeURL reflection.parent.parent.url}}">{{reflection.parent.parent.name}}</a>
{{else}}
{{reflection.parent.parent.name}}
{{/if}}
.
{{#if reflection.parent.url}}
<a href="{{relativeURL reflection.parent.url}}">{{reflection.parent.name}}</a>
{{else}}
{{reflection.parent.name}}
{{/if}}
{{else}}
{{#if reflection.parent.url}}
<a href="{{relativeURL reflection.parent.url}}">{{reflection.parent.name}}</a>
{{else}}
{{reflection.parent.name}}
{{/if}}
.
{{#if reflection.url}}
<a href="{{relativeURL reflection.url}}">{{reflection.name}}</a>
{{else}}
{{reflection.name}}
{{/if}}
{{/ifSignature}}
{{else}}
{{this}}
{{/if}}
{{/if}}
{{else}}
void
{{/if}}
{{/compact}}
@@ -0,0 +1,14 @@
<ul class="tsd-type-parameters">
{{#each typeParameters}}
<li>
<h4>{{#compact}}
{{name}}
{{#if type}}
<span class="tsd-signature-symbol">:&nbsp;</span>
{{#with type}}{{> type}}{{/with}}
{{/if}}
{{/compact}}</h4>
{{> comment}}
</li>
{{/each}}
</ul>
@@ -0,0 +1,3 @@
<div class="tsd-panel tsd-typography">
{{#markdown}}{{{model.readme}}}{{/markdown}}
</div>
@@ -0,0 +1,81 @@
{{#with model}}
{{#if hasComment}}
<section class="tsd-panel tsd-comment">
{{> comment}}
</section>
{{/if}}
{{/with}}
{{#if model.typeParameters}}
<section class="tsd-panel tsd-type-parameters">
<h3>Type parameters</h3>
{{#with model}}{{> typeParameters}}{{/with}}
</section>
{{/if}}
{{#if model.typeHierarchy}}
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
{{#with model.typeHierarchy}}{{> hierarchy}}{{/with}}
</section>
-->
{{/if}}
{{#if model.implementedTypes}}
<section class="tsd-panel">
<h3>Implements</h3>
<ul class="tsd-hierarchy">
{{#each model.implementedTypes}}
<li>{{#compact}}{{> type}}{{/compact}}</li>
{{/each}}
</ul>
</section>
{{/if}}
{{#if model.implementedBy}}
<section class="tsd-panel">
<h3>Implemented by</h3>
<ul class="tsd-hierarchy">
{{#each model.implementedBy}}
<li>{{#compact}}{{> type}}{{/compact}}</li>
{{/each}}
</ul>
</section>
{{/if}}
{{#if model.signatures}}
<section class="tsd-panel">
<h3 class="tsd-before-signature">Callable</h3>
{{#with model}}{{> member.signatures}}{{/with}}
</section>
{{/if}}
{{#if model.indexSignature}}
<section class="tsd-panel {{model.cssClasses}}">
<h3 class="tsd-before-signature">Indexable</h3>
<div class="tsd-signature tsd-kind-icon">{{#compact}}
<span class="tsd-signature-symbol">[</span>
{{#each model.indexSignature.parameters}}
{{name}}:&nbsp;{{#with type}}{{>type}}{{/with}}
{{/each}}
<span class="tsd-signature-symbol">]:&nbsp;</span>
{{#with model.indexSignature.type}}{{>type}}{{/with}}
{{/compact}}</div>
{{#with model.indexSignature}}
{{> comment}}
{{/with}}
{{#if model.indexSignature.type.declaration}}
{{#with model.indexSignature.type.declaration}}
{{> parameter}}
{{/with}}
{{/if}}
</section>
{{/if}}
{{#with model}}
{{> index}}
{{> members}}
{{/with}}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 KiB

After

Width:  |  Height:  |  Size: 48 KiB

+109
View File
@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="disegno.svg"
inkscape:version="1.0rc1 (09960d6, 2020-04-09)"
id="svg8"
version="1.1"
viewBox="0 0 70 70"
height="70"
width="70">
<defs
id="defs2" />
<sodipodi:namedview
inkscape:window-maximized="0"
inkscape:window-y="25"
inkscape:window-x="0"
inkscape:window-height="775"
inkscape:window-width="1280"
inkscape:guide-bbox="true"
showguides="true"
inkscape:pagecheckerboard="true"
inkscape:showpageshadow="false"
showborder="true"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="39.253064"
inkscape:cx="25.246811"
inkscape:zoom="5.8562241"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
units="px">
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1932"
orientation="-1,0"
position="12,70" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1934"
orientation="-1,0"
position="58,70" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1936"
orientation="0,1"
position="0,58" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1938"
orientation="0,1"
position="0,12" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide2021"
orientation="-1,0"
position="35,70" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Livello 1">
<path
inkscape:transform-center-y="23.027731"
inkscape:transform-center-x="-17.510929"
id="path30"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.133334;stop-opacity:1"
d="M 52.1731,12 H 35.107236 c -0.161294,0 -0.291666,0.130494 -0.291666,0.291543 v 5.419239 c 0,0.182381 0.147678,0.330176 0.330178,0.330176 h 2.339824 c 0.94638,0 1.713811,0.727936 1.795988,1.652976 v 3.715485 2.069989 19.715998 0.139708 h -6.44e-4 c 0.0058,0.206545 -0.0023,0.409658 -0.02244,0.609702 -0.0023,0.02918 -0.0062,0.05801 -0.0097,0.08697 -0.01349,0.116897 -0.02846,0.233161 -0.05114,0.346981 -0.01243,0.06489 -0.02993,0.128044 -0.0455,0.191949 -0.02097,0.08499 -0.0379,0.171342 -0.06401,0.254505 -0.1543,0.493916 -0.39825,0.95202 -0.735666,1.355297 -0.01243,0.01438 -0.02771,0.02761 -0.03998,0.04182 -0.102908,0.119222 -0.210962,0.235367 -0.330548,0.34416 -0.120695,0.109778 -0.248492,0.211819 -0.382795,0.306628 -0.954719,0.676302 -2.23974,0.973854 -3.6755,0.836485 -1.830697,-0.172088 -3.646921,-1.002309 -5.114939,-2.337984 -1.467772,-1.335554 -2.380422,-2.988039 -2.569305,-4.653525 -0.169868,-1.489971 0.276578,-2.801116 1.256197,-3.692426 0.0027,-0.0019 0.005,-0.0037 0.0069,-0.0058 0.0379,-0.03398 0.0796,-0.06379 0.1186,-0.09654 0.701076,-0.58738 1.614951,-0.943313 2.657858,-1.041435 0.01172,-0.0011 0.02306,-0.003 0.03423,-0.0039 0.109777,-0.0097 0.221631,-0.01402 0.334471,-0.01827 0.05899,-0.0019 0.117251,-0.0062 0.177111,-0.0065 0.01986,-2.76e-4 0.03875,-0.0023 0.05864,-0.0023 0.03557,0 0.07248,0.0046 0.108055,0.0051 0.164347,0.0027 0.329933,0.0094 0.498825,0.02379 0.02134,0.0017 0.0417,9.78e-4 0.06365,0.003 0.01562,0.0016 0.03103,0.005 0.04662,0.0065 0.956682,0.09592 1.90392,0.381568 2.802834,0.814406 0.01876,8.39e-4 0.04047,0.0065 0.06759,0.02159 0.274004,0.151353 0.326498,-0.01101 0.334593,-0.118351 v -4.688237 -3.46883 c 0,-0.233653 -0.162519,-0.440321 -0.3904,-0.490484 -4.841795,-1.065597 -9.592336,0.04355 -12.944402,3.09499 -2.928307,2.663747 -4.344811,6.507647 -3.885849,10.545461 0.409535,3.596512 2.255685,7.05173 5.198956,9.730318 2.868698,2.609903 6.521262,4.242028 10.288996,4.596993 0.519184,0.04805 1.040822,0.07283 1.549826,0.07283 3.598351,0 6.937296,-1.233851 9.401735,-3.475688 2.33455,-2.125552 3.732902,-5.044294 3.938097,-8.219619 l 0.01901,-20.825138 h 0.0021 V 19.91155 h 7.7e-4 v -0.09714 c 0.02109,-0.982682 0.822378,-1.773296 1.81046,-1.773296 h 2.339824 c 0.182259,0 0.330177,-0.147802 0.330177,-0.330177 v -5.419299 c -2.1e-5,-0.161046 -0.130406,-0.291543 -0.291686,-0.291543"
inkscape:connector-curvature="0" />
</g>
<inkscape:templateinfo>
<inkscape:name>SmallTile</inkscape:name>
<inkscape:shortdesc>Small tile</inkscape:shortdesc>
<inkscape:date>2020-04-15</inkscape:date>
</inkscape:templateinfo>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

+109
View File
@@ -0,0 +1,109 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="disegno-1.svg"
inkscape:version="1.0rc1 (09960d6, 2020-04-09)"
id="svg8"
version="1.1"
viewBox="0 0 150 150"
height="150"
width="150">
<defs
id="defs2" />
<sodipodi:namedview
inkscape:window-maximized="0"
inkscape:window-y="25"
inkscape:window-x="0"
inkscape:window-height="775"
inkscape:window-width="1280"
inkscape:guide-bbox="true"
showguides="true"
inkscape:pagecheckerboard="true"
inkscape:showpageshadow="false"
showborder="true"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="79.075594"
inkscape:cx="91.835957"
inkscape:zoom="3.1892627"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
units="px">
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1919"
orientation="0,1"
position="0,115" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1921"
orientation="-1,0"
position="25,150" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1923"
orientation="-1,0"
position="125,150" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide1925"
orientation="0,1"
position="0,35" />
<sodipodi:guide
inkscape:color="rgb(0,0,255)"
inkscape:locked="false"
inkscape:label=""
id="guide2879"
orientation="-1,0"
position="75,150" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Livello 1">
<path
inkscape:connector-curvature="0"
d="M 105.30102,35.000001 H 75.621261 c -0.280511,0 -0.507245,0.226946 -0.507245,0.507031 v 9.424762 c 0,0.317185 0.256831,0.574219 0.574223,0.574219 h 4.069258 c 1.645878,0 2.980541,1.265976 3.123457,2.874741 v 6.461712 3.599981 34.288687 0.24297 h -0.0011 c 0.01009,0.359209 -0.004,0.712449 -0.03903,1.060352 -0.004,0.05075 -0.01078,0.100887 -0.01687,0.151252 -0.02346,0.203299 -0.0495,0.405497 -0.08894,0.603445 -0.02162,0.112852 -0.05205,0.222685 -0.07913,0.333824 -0.03647,0.147809 -0.06591,0.297986 -0.111322,0.442618 -0.268348,0.858984 -0.692608,1.655686 -1.279419,2.357038 -0.02162,0.02501 -0.04819,0.04802 -0.06953,0.07273 -0.178971,0.207343 -0.366891,0.409334 -0.574866,0.598539 -0.209904,0.190918 -0.43216,0.368381 -0.66573,0.533266 -1.660381,1.176182 -3.8952,1.693662 -6.392174,1.454752 -3.18382,-0.29928 -6.34247,-1.743142 -8.895544,-4.066054 -2.552647,-2.322703 -4.139864,-5.196589 -4.468356,-8.093086 -0.295423,-2.591254 0.481005,-4.871506 2.18469,-6.42161 0.0047,-0.0033 0.0087,-0.0064 0.012,-0.01009 0.06591,-0.05909 0.138435,-0.110939 0.206261,-0.167895 1.219262,-1.021531 2.80861,-1.640544 4.622361,-1.811191 0.02038,-0.0019 0.0401,-0.0052 0.05953,-0.0068 0.190917,-0.01687 0.385445,-0.02438 0.581689,-0.03177 0.102591,-0.0033 0.203915,-0.01078 0.308019,-0.0113 0.03454,-4.8e-4 0.06739,-0.004 0.101982,-0.004 0.06186,0 0.126053,0.008 0.187922,0.0089 0.285821,0.0047 0.573797,0.01635 0.867522,0.04137 0.03711,0.003 0.07252,0.0017 0.110695,0.0052 0.02717,0.0028 0.05397,0.0087 0.08108,0.0113 1.663794,0.166817 3.311164,0.663596 4.874493,1.416358 0.03263,0.0015 0.07038,0.0113 0.117548,0.03755 0.476528,0.263222 0.567822,-0.01915 0.581901,-0.205828 V 73.11952 67.086773 c 0,-0.406353 -0.282642,-0.765776 -0.678957,-0.853016 -8.420512,-1.853212 -16.682323,0.07574 -22.512002,5.382591 -5.092707,4.632602 -7.556192,11.317645 -6.757997,18.339929 0.712234,6.254803 3.92293,12.263883 9.041661,16.922293 4.989039,4.53896 11.341325,7.37744 17.893905,7.99477 0.902929,0.0836 1.810125,0.12666 2.69535,0.12666 6.258001,0 12.064861,-2.14583 16.350841,-6.04467 4.060086,-3.69661 6.492006,-8.77269 6.848866,-14.294994 l 0.0331,-36.217627 h 0.004 v -9.683497 h 10e-4 v -0.16894 c 0.0367,-1.709012 1.43023,-3.083992 3.148627,-3.083992 h 4.06926 c 0.31697,0 0.57422,-0.257047 0.57422,-0.574221 v -9.424867 c -4e-5,-0.28008 -0.22679,-0.507031 -0.50728,-0.507031"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.133334;stop-opacity:1"
id="path30"
inkscape:transform-center-x="-30.453831"
inkscape:transform-center-y="40.048222" />
</g>
<inkscape:templateinfo>
<inkscape:name>Square150x150Logo</inkscape:name>
<inkscape:shortdesc>Medium tile</inkscape:shortdesc>
<inkscape:date>2020-04-15</inkscape:date>
</inkscape:templateinfo>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

+2
View File
@@ -0,0 +1,2 @@
node_modules
dist
Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

+19
View File
@@ -0,0 +1,19 @@
# Joplin TinyMCE Icon Pack
Created from template: https://raw.githubusercontent.com/tinymce/oxide-icon-pack-template
## Adding an icon
- Get it from [Fork Awesome](https://forkaweso.me/)
- Using https://vectr.com/Resize Resize vector graphics to between 15x15 to 20x20 max. Set page dimensions to 24x24 pixels
- Save to src/svg
![](./IconDimensions.png)
## Building
Open a terminal and navigate to the project folder, then
1. Install dependencies using `npm install`.
2. Place your icons in `src/svg`
3. Run `gulp` to build the icon pack
+27
View File
@@ -0,0 +1,27 @@
const iconPackager = require('@ephox/oxide-icons-tools').iconPackager;
const clean = require('gulp-clean');
const gulp = require('gulp');
const fs = require('fs');
gulp.task('icon-packager', function() {
const contents = fs.readFileSync('package.json');
const name = JSON.parse(contents).iconPackName;
return gulp.src('src/svg/**/*.svg')
.pipe(iconPackager({ name }))
.pipe(gulp.dest('dist'));
});
gulp.task('deploy', function() {
fs.copyFileSync(`${__dirname}/dist/icons/Joplin/icons.js`, `${__dirname}/../../../packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/icons.js`);
return Promise.resolve();
});
gulp.task('clean', function() {
return gulp.src('./dist', {
read: false,
allowEmpty: true,
}).pipe(clean());
});
gulp.task('default', gulp.series('clean', 'icon-packager', 'deploy'));
File diff suppressed because it is too large Load Diff
+18
View File
@@ -0,0 +1,18 @@
{
"name": "oxide-icon-pack-template",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"postinstall": "node postinstall.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@ephox/oxide-icons-tools": "^2.1.1",
"gulp": "^4.0.2",
"gulp-clean": "^0.4.0",
"prompts": "^2.2.1"
},
"iconPackName": "Joplin"
}
+20
View File
@@ -0,0 +1,20 @@
const prompts = require('prompts');
const fs = require('fs');
(async function() {
const response = await prompts({
type: 'text',
name: 'iconPackName',
message: 'Enter the name of the icon pack.',
validate: function(iconPackName) { return iconPackName.length > 0; },
});
try {
const contents = fs.readFileSync('package.json');
obj = JSON.parse(contents);
obj.iconPackName = response.iconPackName;
fs.writeFileSync('package.json', JSON.stringify(obj, undefined, 2));
} catch (err) {
console.error(err.message);
}
})();
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" width="24" height="24"><defs><path d="M17.53 21.82C16.44 21.82 15.38 21.35 14.61 20.58C13.64 19.61 5.91 11.89 4.95 10.93C4.07 10.03 3.54 8.82 3.54 7.56C3.54 4.92 5.62 2.82 8.26 2.82C9.52 2.82 10.74 3.33 11.65 4.23C12.4 4.98 18.42 11.01 19.18 11.76C19.25 11.84 19.3 11.94 19.3 12.04C19.3 12.3 18.6 12.99 18.34 12.99C18.23 12.99 18.13 12.94 18.06 12.87C17.3 12.11 11.27 6.08 10.52 5.32C9.92 4.74 9.11 4.36 8.27 4.36C6.5 4.36 5.14 5.79 5.14 7.55C5.14 8.39 5.48 9.2 6.08 9.8C7.05 10.76 14.77 18.49 15.73 19.46C16.2 19.93 16.86 20.24 17.53 20.24C18.59 20.24 19.37 19.46 19.37 18.4C19.37 17.72 19.06 17.07 18.59 16.6C17.87 15.88 12.09 10.1 11.37 9.38C11.17 9.19 10.89 9.08 10.62 9.08C10.15 9.08 9.79 9.42 9.79 9.91C9.79 10.18 9.91 10.44 10.1 10.64C10.61 11.15 14.69 15.23 15.2 15.74C15.27 15.82 15.32 15.92 15.32 16.02C15.32 16.28 14.61 16.99 14.35 16.99C14.25 16.99 14.15 16.94 14.08 16.86C13.57 16.35 9.49 12.27 8.98 11.76C8.48 11.28 8.19 10.59 8.19 9.91C8.19 8.54 9.26 7.47 10.63 7.47C11.33 7.47 12 7.76 12.48 8.26C13.21 8.98 18.99 14.76 19.71 15.48C20.49 16.25 20.95 17.31 20.95 18.4C20.95 20.34 19.47 21.82 17.53 21.82Z" id="a3MUovWvUV"></path></defs><g><g><g><use xlink:href="#a3MUovWvUV" opacity="1" fill="#000000" fill-opacity="1"></use><g><use xlink:href="#a3MUovWvUV" opacity="1" fill-opacity="0" stroke="#000000" stroke-width="1" stroke-opacity="0"></use></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+14
View File
@@ -0,0 +1,14 @@
.DS_Store
*~
*.iws
*.sublime-workspace
.cache
/lib
/dist
/scratch
node_modules
/config/repl
/*.log
ephox-*.tgz
package-lock.json
jenkins-plumbing
+196
View File
@@ -0,0 +1,196 @@
const { CheckerPlugin } = require('awesome-typescript-loader');
const LiveReloadPlugin = require('webpack-livereload-plugin');
const path = require('path');
const swag = require('@ephox/swag');
module.exports = function(grunt) {
const packageData = grunt.file.readJSON('package.json');
const BUILD_VERSION = `${packageData.version}-${process.env.BUILD_NUMBER ? process.env.BUILD_NUMBER : '0'}`;
const libPluginPath = 'lib/Main.js';
const scratchPluginPath = 'scratch/compiled/joplinLists.js';
const scratchPluginMinPath = 'scratch/compiled/joplinLists.min.js';
const tsDemoSourceFile = path.resolve('src/demo/ts/Demo.ts');
const jsDemoDestFile = path.resolve('scratch/compiled/demo.js');
grunt.initConfig({
pkg: packageData,
clean: {
dirs: ['dist', 'scratch'],
},
// tslint: {
// options: {
// configuration: 'tslint.json'
// },
// plugin: ['src/**/*.ts']
// },
shell: {
command: 'tsc --project tsconfig.json',
},
rollup: {
options: {
treeshake: true,
external: [
'tinymce/core/api/PluginManager',
'tinymce/core/api/util/Tools',
'tinymce/core/api/dom/BookmarkManager',
'tinymce/core/api/Editor',
'tinymce/core/api/dom/DOMUtils',
'tinymce/core/api/dom/RangeUtils',
'tinymce/core/api/dom/TreeWalker',
'tinymce/core/api/util/VK',
'tinymce/core/api/dom/DomQuery',
],
globals: {
'tinymce/core/api/PluginManager': 'tinymce.PluginManager',
'tinymce/core/api/util/Tools': 'tinymce.util.Tools',
'tinymce/core/api/dom/BookmarkManager': 'tinymce.dom.BookmarkManager',
'tinymce/core/api/Editor': 'tinymce.Editor',
'tinymce/core/api/dom/DOMUtils': 'tinymce.dom.DOMUtils',
'tinymce/core/api/dom/RangeUtils': 'tinymce.dom.RangeUtils',
'tinymce/core/api/dom/TreeWalker': 'tinymce.dom.TreeWalker',
'tinymce/core/api/util/VK': 'tinymce.util.VK',
'tinymce/core/api/dom/DomQuery': 'tinymce.dom.DomQuery',
},
format: 'iife',
onwarn: swag.onwarn,
plugins: [
swag.nodeResolve({
basedir: __dirname,
prefixes: {},
}),
swag.remapImports(),
],
},
plugin: {
files: [
{
src: libPluginPath,
dest: scratchPluginPath,
},
],
},
},
uglify: {
plugin: {
files: [
{
src: scratchPluginPath,
dest: scratchPluginMinPath,
},
],
},
},
concat: {
license: {
options: {
process: function(src) {
const buildSuffix = process.env.BUILD_NUMBER
? `-${process.env.BUILD_NUMBER}`
: '';
return src.replace(
/@BUILD_NUMBER@/g,
packageData.version + buildSuffix
);
},
},
// scratchPluginMinPath is used twice on purpose, all outputs will be minified for premium plugins
files: {
'dist/joplinLists.js': [
'src/text/license-header.js',
scratchPluginPath,
],
'dist/joplinLists.min.js': [
'src/text/license-header.js',
scratchPluginMinPath,
],
},
},
},
copy: {
css: {
files: [
// {
// cwd: 'src/text',
// src: ['license.txt'],
// dest: 'dist',
// expand: true,
// },
// { src: ['changelog.txt'], dest: 'dist', expand: true },
{
src: ['dist/joplinLists.js'],
dest: '../../../packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/plugins/lists.js',
},
],
},
},
webpack: {
options: {
mode: 'development',
watch: true,
},
dev: {
entry: tsDemoSourceFile,
devtool: 'source-map',
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.js$/,
use: ['source-map-loader'],
enforce: 'pre',
},
{
test: /\.ts$/,
use: [
{
loader: 'ts-loader',
options: {
transpileOnly: true,
experimentalWatchApi: true,
},
},
],
},
],
},
plugins: [new LiveReloadPlugin(), new CheckerPlugin()],
output: {
filename: path.basename(jsDemoDestFile),
path: path.dirname(jsDemoDestFile),
},
},
},
});
require('load-grunt-tasks')(grunt);
grunt.loadNpmTasks('@ephox/swag');
// grunt.registerTask('version', 'Creates a version file', function() {
// grunt.file.write('dist/version.txt', BUILD_VERSION);
// });
grunt.registerTask('default', [
'clean',
// 'tslint',
'shell',
'rollup',
'uglify',
'concat',
'copy',
// 'version',
]);
};
+502
View File
@@ -0,0 +1,502 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
+13
View File
@@ -0,0 +1,13 @@
# TinyMCE Joplin Lists Plugin
**As of 2020-11-02 this module no longer builds (a ton of TypeScript errors). No idea why since nothing was changed but should be investigated if modifying this plugin is ever needed.**
This is based on https://github.com/tinymce/tinymce/tree/59748a11303fb7cf00fdb8c9392dcb082ee9d965/modules/tinymce/src/plugins/lists
But with support for Joplin checkboxes.
## Building
Use `npm i && npm run build` to build the plugin, which will also copy the compiled version to the right packages/app-desktop sub-directory.
To test the plugin, use `npm run buildAndStart`, which will build the plugin and start the desktop application.
+57
View File
@@ -0,0 +1,57 @@
declare module 'tinymce/core/api/util/Tools' {
const Tools:any;
export default Tools;
}
declare module 'tinymce/core/api/Editor' {
export default interface Editor {
on: Function,
off: Function,
execCommand: Function,
getBody: Function,
getParam: Function,
fire: Function,
nodeChanged: Function,
selection: any,
contentDocument: any,
dom: any,
schema: any,
undoManager: any,
ui: any,
}
}
declare module 'tinymce/core/api/dom/BookmarkManager' {
const BookmarkManager:any;
export default BookmarkManager;
}
declare module 'tinymce/core/api/dom/DOMUtils' {
const DOMUtils:any;
export default DOMUtils;
}
declare module 'tinymce/core/api/dom/RangeUtils' {
const RangeUtils:any;
export default RangeUtils;
}
declare module 'tinymce/core/api/dom/TreeWalker' {
const TreeWalker:any;
export default TreeWalker;
}
declare module 'tinymce/core/api/util/VK' {
const VK:any;
export default VK;
}
declare module 'tinymce/core/api/dom/DomQuery' {
const DomQuery:any;
export default DomQuery;
}
declare module 'tinymce/core/api/PluginManager' {
const PluginManager:any;
export default PluginManager;
}
+54
View File
@@ -0,0 +1,54 @@
{
"name": "joplin-tinymce-lists",
"version": "1.0.0",
"description": "",
"scripts": {
"prepublishOnly": "npm run lint && npm run build",
"lint": "tslint src/**/*.ts",
"build": "grunt",
"test": "bedrock-auto -b phantomjs -d src/test/ts/",
"test-manual": "bedrock -d src/test/ts/",
"start": "grunt webpack",
"buildAndStart": "yarn build && cd .. && cd .. && cd .. && cd packages/app-desktop && npm start"
},
"keywords": [],
"author": "Tiny Technologies Inc.",
"devDependencies": {
"@ephox/agar": "latest",
"@ephox/bedrock": "latest",
"@ephox/mcagar": "latest",
"@ephox/swag": "latest",
"@ephox/tslint-rules": "latest",
"awesome-typescript-loader": "^5.2.1",
"grunt": "^1.0.4",
"grunt-contrib-clean": "^2.0.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-uglify": "^4.0.0",
"grunt-shell": "^2.1.0",
"grunt-tslint": "^5.0.2",
"grunt-webpack": "^3.1.3",
"load-grunt-tasks": "^4.0.0",
"tinymce": "latest",
"ts-loader": "^5.3.0",
"tslib": "^1.9.3",
"tslint": "^5.11.0",
"typescript": "^3.1.6",
"webpack": "^4.25.1",
"webpack-livereload-plugin": "^2.1.1"
},
"files": [
"lib/main",
"lib/demo",
"lib/test",
"src",
"tsconfig.json",
"readme.md",
"LEGAL.txt",
"LICENSE.txt"
],
"main": "./lib/main/ts/api/Main.js",
"module": "./lib/main/ts/api/Main.js",
"types": "./lib/main/ts/api/Main.d.ts",
"license": "Apache-2.0"
}
@@ -0,0 +1,16 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import Plugin from './Plugin';
Plugin();
/*******
* DO NOT EXPORT ANYTHING
*
* IF YOU DO ROLLUP WILL LEAVE A GLOBAL ON THE PAGE
*******/
@@ -0,0 +1,22 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import PluginManager from 'tinymce/core/api/PluginManager';
import * as Api from './api/Api';
import * as Commands from './api/Commands';
import * as Keyboard from './core/Keyboard';
import * as Buttons from './ui/Buttons';
export default function () {
PluginManager.add('joplinLists', function (editor) {
Keyboard.setup(editor);
Buttons.register(editor);
Commands.register(editor);
return Api.get(editor);
});
}
@@ -0,0 +1,53 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Arr } from '@ephox/katamari';
import { Element} from '@ephox/sugar';
import Editor from 'tinymce/core/api/Editor';
import { Indentation } from '../listModel/Indentation';
import { listIndentation } from '../listModel/ListsIndendation';
import { dlIndentation } from '../core/DlIndentation';
import * as Range from '../core/Range';
import * as Selection from '../core/Selection';
const selectionIndentation = (editor: Editor, indentation: Indentation): boolean => {
const lists = Arr.map(Selection.getSelectedListRoots(editor), Element.fromDom);
const dlItems = Arr.map(Selection.getSelectedDlItems(editor), Element.fromDom);
let isHandled = false;
if (lists.length || dlItems.length) {
const bookmark = editor.selection.getBookmark();
listIndentation(editor, lists, indentation);
dlIndentation(editor, indentation, dlItems);
editor.selection.moveToBookmark(bookmark);
editor.selection.setRng(Range.normalizeRange(editor.selection.getRng()));
editor.nodeChanged();
isHandled = true;
}
return isHandled;
};
const indentListSelection = (editor: Editor): boolean => {
return selectionIndentation(editor, Indentation.Indent);
};
const outdentListSelection = (editor: Editor): boolean => {
return selectionIndentation(editor, Indentation.Outdent);
};
const flattenListSelection = (editor: Editor): boolean => {
return selectionIndentation(editor, Indentation.Flatten);
};
export {
indentListSelection,
outdentListSelection,
flattenListSelection
};
@@ -0,0 +1,307 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import BookmarkManager from 'tinymce/core/api/dom/BookmarkManager';
import Tools from 'tinymce/core/api/util/Tools';
import * as Bookmark from '../core/Bookmark';
import * as NodeType from '../core/NodeType';
import * as Selection from '../core/Selection';
import { HTMLElement } from '@ephox/dom-globals';
import { flattenListSelection } from './Indendation';
import { fireListEvent } from '../api/Events';
import { isCustomList } from '../core/Util';
import Editor from 'tinymce/core/api/Editor';
import { listToggleActionFromListName } from '../core/ListAction';
import { findContainerListTypeFromElement } from '../listModel/JoplinListUtil';
const updateListStyle = function (dom, el, detail) {
const type = detail['list-style-type'] ? detail['list-style-type'] : null;
dom.setStyle(el, 'list-style-type', type);
};
const setAttribs = function (elm, attrs) {
Tools.each(attrs, function (value, key) {
elm.setAttribute(key, value);
});
};
const updateListAttrs = function (dom, el, detail) {
setAttribs(el, detail['list-attributes']);
Tools.each(dom.select('li', el), function (li) {
setAttribs(li, detail['list-item-attributes']);
});
};
const updateListWithDetails = function (dom, el, detail) {
updateListStyle(dom, el, detail);
updateListAttrs(dom, el, detail);
if (detail.listType === 'joplinChecklist') {
el.classList.add('joplin-checklist');
} else {
el.classList.remove('joplin-checklist');
}
};
const removeStyles = (dom, element: HTMLElement, styles: string[]) => {
Tools.each(styles, (style) => dom.setStyle(element, { [style]: '' }));
};
const getEndPointNode = function (editor, rng, start, root) {
let container, offset;
container = rng[start ? 'startContainer' : 'endContainer'];
offset = rng[start ? 'startOffset' : 'endOffset'];
// Resolve node index
if (container.nodeType === 1) {
container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;
}
if (!start && NodeType.isBr(container.nextSibling)) {
container = container.nextSibling;
}
while (container.parentNode !== root) {
if (NodeType.isTextBlock(editor, container)) {
return container;
}
if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {
return container;
}
container = container.parentNode;
}
return container;
};
const getSelectedTextBlocks = function (editor, rng, root) {
const textBlocks = [], dom = editor.dom;
const startNode = getEndPointNode(editor, rng, true, root);
const endNode = getEndPointNode(editor, rng, false, root);
let block;
const siblings = [];
for (let node = startNode; node; node = node.nextSibling) {
siblings.push(node);
if (node === endNode) {
break;
}
}
Tools.each(siblings, function (node) {
if (NodeType.isTextBlock(editor, node)) {
textBlocks.push(node);
block = null;
return;
}
if (dom.isBlock(node) || NodeType.isBr(node)) {
if (NodeType.isBr(node)) {
dom.remove(node);
}
block = null;
return;
}
const nextSibling = node.nextSibling;
if (BookmarkManager.isBookmarkNode(node)) {
if (NodeType.isTextBlock(editor, nextSibling) || (!nextSibling && node.parentNode === root)) {
block = null;
return;
}
}
if (!block) {
block = dom.create('p');
node.parentNode.insertBefore(block, node);
textBlocks.push(block);
}
block.appendChild(node);
});
return textBlocks;
};
const hasCompatibleStyle = function (dom, sib, detail) {
const sibStyle = dom.getStyle(sib, 'list-style-type');
let detailStyle = detail ? detail['list-style-type'] : '';
detailStyle = detailStyle === null ? '' : detailStyle;
return sibStyle === detailStyle;
};
const applyList = function (editor, listName: string, detail:any = {}) {
const rng = editor.selection.getRng(true);
let bookmark;
let listItemName = 'LI';
const root = Selection.getClosestListRootElm(editor, editor.selection.getStart(true));
const dom = editor.dom;
if (dom.getContentEditable(editor.selection.getNode()) === 'false') {
return;
}
listName = listName.toUpperCase();
if (listName === 'DL') {
listItemName = 'DT';
}
bookmark = Bookmark.createBookmark(rng);
Tools.each(getSelectedTextBlocks(editor, rng, root), function (block) {
let listBlock, sibling;
sibling = block.previousSibling;
if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {
listBlock = sibling;
block = dom.rename(block, listItemName);
sibling.appendChild(block);
} else {
listBlock = dom.create(listName);
if (detail.listType === 'joplinChecklist') {
listBlock.classList.add('joplin-checklist');
} else {
listBlock.classList.remove('joplin-checklist');
}
block.parentNode.insertBefore(listBlock, block);
listBlock.appendChild(block);
block = dom.rename(block, listItemName);
}
removeStyles(dom, block, [
'margin', 'margin-right', 'margin-bottom', 'margin-left', 'margin-top',
'padding', 'padding-right', 'padding-bottom', 'padding-left', 'padding-top',
]);
updateListWithDetails(dom, listBlock, detail);
mergeWithAdjacentLists(editor.dom, listBlock);
});
editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
};
const isValidLists = function (list1, list2) {
return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName;
};
const hasSameListStyle = function (dom, list1, list2) {
const targetStyle = dom.getStyle(list1, 'list-style-type', true);
const style = dom.getStyle(list2, 'list-style-type', true);
return targetStyle === style;
};
const hasSameClasses = function (elm1, elm2) {
return elm1.className === elm2.className;
};
const shouldMerge = function (dom, list1, list2) {
return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);
};
const mergeWithAdjacentLists = function (dom, listBlock) {
let sibling, node;
sibling = listBlock.nextSibling;
if (shouldMerge(dom, listBlock, sibling)) {
while ((node = sibling.firstChild)) {
listBlock.appendChild(node);
}
dom.remove(sibling);
}
sibling = listBlock.previousSibling;
if (shouldMerge(dom, listBlock, sibling)) {
while ((node = sibling.lastChild)) {
listBlock.insertBefore(node, listBlock.firstChild);
}
dom.remove(sibling);
}
};
const updateList = function (editor: Editor, list, listName, detail) {
if (list.nodeName !== listName) {
const newList = editor.dom.rename(list, listName);
updateListWithDetails(editor.dom, newList, detail);
fireListEvent(editor, listToggleActionFromListName(listName), newList);
} else {
updateListWithDetails(editor.dom, list, detail);
fireListEvent(editor, listToggleActionFromListName(listName), list);
}
};
const toggleMultipleLists = function (editor, parentList, lists, listName, detail) {
if (parentList.nodeName === listName && !hasListStyleDetail(detail)) {
flattenListSelection(editor);
} else {
const bookmark = Bookmark.createBookmark(editor.selection.getRng(true));
Tools.each([parentList].concat(lists), function (elm) {
updateList(editor, elm, listName, detail);
});
editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
}
};
const hasListStyleDetail = function (detail) {
return 'list-style-type' in detail;
};
const toggleSingleList = function (editor, parentList, listName, detail) {
if (parentList === editor.getBody()) {
return;
}
if (parentList) {
const listType = findContainerListTypeFromElement(parentList);
if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList) && listType === detail.listType) {
flattenListSelection(editor);
} else {
const bookmark = Bookmark.createBookmark(editor.selection.getRng(true));
updateListWithDetails(editor.dom, parentList, detail);
const newList = editor.dom.rename(parentList, listName);
mergeWithAdjacentLists(editor.dom, newList);
editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
fireListEvent(editor, listToggleActionFromListName(listName), newList);
}
} else {
applyList(editor, listName, detail);
fireListEvent(editor, listToggleActionFromListName(listName), parentList);
}
};
const toggleList = function (editor, listName, detail) {
const parentList = Selection.getParentList(editor);
const selectedSubLists = Selection.getSelectedSubLists(editor);
detail = {
listType: 'regular',
...detail,
}
if (parentList && selectedSubLists.length > 0) {
toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);
} else {
toggleSingleList(editor, parentList, listName, detail);
}
};
export {
toggleList,
mergeWithAdjacentLists
};
@@ -0,0 +1,21 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import * as Delete from '../core/Delete';
import Editor from 'tinymce/core/api/Editor';
const get = function (editor: Editor) {
return {
backspaceDelete (isForward: boolean) {
Delete.backspaceDelete(editor, isForward);
}
};
};
export {
get
};
@@ -0,0 +1,55 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import * as ToggleList from '../actions/ToggleList';
import { indentListSelection, outdentListSelection, flattenListSelection } from '../actions/Indendation';
import { addJoplinChecklistCommands } from '../listModel/JoplinListUtil';
const queryListCommandState = function (editor, listName) {
return function () {
const parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL');
return parentList && parentList.nodeName === listName;
};
};
const register = function (editor) {
editor.on('BeforeExecCommand', function (e) {
const cmd = e.command.toLowerCase();
if (cmd === 'indent') {
indentListSelection(editor);
} else if (cmd === 'outdent') {
outdentListSelection(editor);
}
});
editor.addCommand('InsertUnorderedList', function (ui, detail) {
ToggleList.toggleList(editor, 'UL', detail);
});
editor.addCommand('InsertOrderedList', function (ui, detail) {
ToggleList.toggleList(editor, 'OL', detail);
});
editor.addCommand('InsertDefinitionList', function (ui, detail) {
ToggleList.toggleList(editor, 'DL', detail);
});
editor.addCommand('RemoveList', () => {
flattenListSelection(editor);
});
editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));
editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));
editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));
addJoplinChecklistCommands(editor, ToggleList);
};
export {
register
};
@@ -0,0 +1,4 @@
import Editor from 'tinymce/core/api/Editor';
import { ListAction } from '../core/ListAction';
export const fireListEvent = (editor: Editor, action: ListAction, element) => editor.fire('ListMutation', { action, element });
@@ -0,0 +1,38 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import Editor from 'tinymce/core/api/Editor';
const shouldIndentOnTab = function (editor: Editor) {
return editor.getParam('lists_indent_on_tab', true);
};
const getForcedRootBlock = (editor: Editor): string => {
const block = editor.getParam('forced_root_block', 'p');
if (block === false) {
return '';
} else if (block === true) {
return 'p';
} else {
return block;
}
};
const getForcedRootBlockAttrs = (editor: Editor): Record<string, string> => {
return editor.getParam('forced_root_block_attrs', {});
};
const getLocalizationFunction = (editor:Editor):Function => {
return editor.getParam('localization_function', (s:string) => s);
}
export {
shouldIndentOnTab,
getForcedRootBlock,
getForcedRootBlockAttrs,
getLocalizationFunction,
};
@@ -0,0 +1,126 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import DOMUtils from 'tinymce/core/api/dom/DOMUtils';
import * as Range from './Range';
const DOM = DOMUtils.DOM;
/**
* Returns a range bookmark. This will convert indexed bookmarks into temporary span elements with
* index 0 so that they can be restored properly after the DOM has been modified. Text bookmarks will not have spans
* added to them since they can be restored after a dom operation.
*
* So this: <p><b>|</b><b>|</b></p>
* becomes: <p><b><span data-mce-type="bookmark">|</span></b><b data-mce-type="bookmark">|</span></b></p>
*
* @param {DOMRange} rng DOM Range to get bookmark on.
* @return {Object} Bookmark object.
*/
const createBookmark = function (rng) {
const bookmark = {};
const setupEndPoint = function (start?) {
let offsetNode, container, offset;
container = rng[start ? 'startContainer' : 'endContainer'];
offset = rng[start ? 'startOffset' : 'endOffset'];
if (container.nodeType === 1) {
offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' });
if (container.hasChildNodes()) {
offset = Math.min(offset, container.childNodes.length - 1);
if (start) {
container.insertBefore(offsetNode, container.childNodes[offset]);
} else {
DOM.insertAfter(offsetNode, container.childNodes[offset]);
}
} else {
container.appendChild(offsetNode);
}
container = offsetNode;
offset = 0;
}
bookmark[start ? 'startContainer' : 'endContainer'] = container;
bookmark[start ? 'startOffset' : 'endOffset'] = offset;
};
setupEndPoint(true);
if (!rng.collapsed) {
setupEndPoint();
}
return bookmark;
};
const resolveBookmark = function (bookmark) {
function restoreEndPoint(start?) {
let container, offset, node;
const nodeIndex = function (container) {
let node = container.parentNode.firstChild, idx = 0;
while (node) {
if (node === container) {
return idx;
}
// Skip data-mce-type=bookmark nodes
if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {
idx++;
}
node = node.nextSibling;
}
return -1;
};
container = node = bookmark[start ? 'startContainer' : 'endContainer'];
offset = bookmark[start ? 'startOffset' : 'endOffset'];
if (!container) {
return;
}
if (container.nodeType === 1) {
offset = nodeIndex(container);
container = container.parentNode;
DOM.remove(node);
if (!container.hasChildNodes() && DOM.isBlock(container)) {
container.appendChild(DOM.create('br'));
}
}
bookmark[start ? 'startContainer' : 'endContainer'] = container;
bookmark[start ? 'startOffset' : 'endOffset'] = offset;
}
restoreEndPoint(true);
restoreEndPoint();
const rng = DOM.createRng();
rng.setStart(bookmark.startContainer, bookmark.startOffset);
if (bookmark.endContainer) {
rng.setEnd(bookmark.endContainer, bookmark.endOffset);
}
return Range.normalizeRange(rng);
};
export {
createBookmark,
resolveBookmark
};
@@ -0,0 +1,285 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
interface DOMUtils {
isBlock: Function,
remove: Function,
$: Function,
getParent: Function,
getParents: Function,
getRoot: Function,
isEmpty: Function,
}
import { Element, HTMLLIElement, Node, Range as DomRange } from '@ephox/dom-globals';
import { Arr } from '@ephox/katamari';
import { Compare, Element as SugarElement } from '@ephox/sugar';
// import DOMUtils from 'tinymce/core/api/dom/DOMUtils';
import RangeUtils from 'tinymce/core/api/dom/RangeUtils';
import TreeWalker from 'tinymce/core/api/dom/TreeWalker';
import Editor from 'tinymce/core/api/Editor';
import VK from 'tinymce/core/api/util/VK';
import { flattenListSelection, outdentListSelection } from '../actions/Indendation';
import * as ToggleList from '../actions/ToggleList';
import * as Bookmark from './Bookmark';
import * as NodeType from './NodeType';
import * as NormalizeLists from './NormalizeLists';
import * as Range from './Range';
import * as Selection from './Selection';
const findNextCaretContainer = function (editor: Editor, rng: DomRange, isForward: Boolean, root: Node): Node {
let node = rng.startContainer;
const offset = rng.startOffset;
if (NodeType.isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) {
return node;
}
const nonEmptyBlocks = editor.schema.getNonEmptyElements();
if (node.nodeType === 1) {
node = RangeUtils.getNode(node, offset);
}
const walker = new TreeWalker(node, root);
// Delete at <li>|<br></li> then jump over the bogus br
if (isForward) {
if (NodeType.isBogusBr(editor.dom, node)) {
walker.next();
}
}
while ((node = walker[isForward ? 'next' : 'prev2']())) {
if (node.nodeName === 'LI' && !node.hasChildNodes()) {
return node;
}
if (nonEmptyBlocks[node.nodeName]) {
return node;
}
if (NodeType.isTextNode(node) && node.data.length > 0) {
return node;
}
}
};
const hasOnlyOneBlockChild = function (dom: DOMUtils, elm: Element): boolean {
const childNodes = elm.childNodes;
return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);
};
const unwrapSingleBlockChild = function (dom: DOMUtils, elm: Element) {
if (hasOnlyOneBlockChild(dom, elm)) {
dom.remove(elm.firstChild, true);
}
};
const moveChildren = function (dom: DOMUtils, fromElm: Element, toElm: Element) {
let node, targetElm;
targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;
unwrapSingleBlockChild(dom, fromElm);
if (!NodeType.isEmpty(dom, fromElm, true)) {
while ((node = fromElm.firstChild)) {
targetElm.appendChild(node);
}
}
};
const mergeLiElements = function (dom: DOMUtils, fromElm: Element, toElm: Element) {
let node, listNode;
const ul = fromElm.parentNode;
if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) {
return;
}
if (NodeType.isListNode(toElm.lastChild)) {
listNode = toElm.lastChild;
}
if (ul === toElm.lastChild) {
if (NodeType.isBr(ul.previousSibling)) {
dom.remove(ul.previousSibling);
}
}
node = toElm.lastChild;
if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) {
dom.remove(node);
}
if (NodeType.isEmpty(dom, toElm, true)) {
dom.$(toElm).empty();
}
moveChildren(dom, fromElm, toElm);
if (listNode) {
toElm.appendChild(listNode);
}
const contains = Compare.contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));
const nestedLists = contains ? dom.getParents(fromElm, NodeType.isListNode, toElm) : [];
dom.remove(fromElm);
Arr.each(nestedLists, (list) => {
if (NodeType.isEmpty(dom, list) && list !== dom.getRoot()) {
dom.remove(list);
}
});
};
const mergeIntoEmptyLi = function (editor: Editor, fromLi: HTMLLIElement, toLi: HTMLLIElement) {
editor.dom.$(toLi).empty();
mergeLiElements(editor.dom, fromLi, toLi);
editor.selection.setCursorLocation(toLi);
};
const mergeForward = function (editor: Editor, rng: DomRange, fromLi: HTMLLIElement, toLi: HTMLLIElement) {
const dom = editor.dom;
if (dom.isEmpty(toLi)) {
mergeIntoEmptyLi(editor, fromLi, toLi);
} else {
const bookmark = Bookmark.createBookmark(rng);
mergeLiElements(dom, fromLi, toLi);
editor.selection.setRng(Bookmark.resolveBookmark(bookmark));
}
};
const mergeBackward = function (editor: Editor, rng: DomRange, fromLi: HTMLLIElement, toLi: HTMLLIElement) {
const bookmark = Bookmark.createBookmark(rng);
mergeLiElements(editor.dom, fromLi, toLi);
const resolvedBookmark = Bookmark.resolveBookmark(bookmark);
editor.selection.setRng(resolvedBookmark);
};
const backspaceDeleteFromListToListCaret = function (editor: Editor, isForward: boolean) {
const dom = editor.dom, selection = editor.selection;
const selectionStartElm = selection.getStart();
const root = Selection.getClosestListRootElm(editor, selectionStartElm);
const li = dom.getParent(selection.getStart(), 'LI', root) as HTMLLIElement;
if (li) {
const ul = li.parentNode;
if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) {
return true;
}
const rng = Range.normalizeRange(selection.getRng());
const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root) as HTMLLIElement;
if (otherLi && otherLi !== li) {
editor.undoManager.transact(() => {
if (isForward) {
mergeForward(editor, rng, otherLi, li);
} else {
if (NodeType.isFirstChild(li)) {
outdentListSelection(editor);
} else {
mergeBackward(editor, rng, li, otherLi);
}
}
});
return true;
} else if (!otherLi) {
if (!isForward && rng.startOffset === 0 && rng.endOffset === 0) {
editor.undoManager.transact(() => {
flattenListSelection(editor);
});
return true;
}
}
}
return false;
};
const removeBlock = function (dom: DOMUtils, block: Element, root: Node) {
const parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);
dom.remove(block);
if (parentBlock && dom.isEmpty(parentBlock)) {
dom.remove(parentBlock);
}
};
const backspaceDeleteIntoListCaret = function (editor: Editor, isForward: boolean) {
const dom = editor.dom;
const selectionStartElm = editor.selection.getStart();
const root = Selection.getClosestListRootElm(editor, selectionStartElm);
const block = dom.getParent(selectionStartElm, dom.isBlock, root);
if (block && dom.isEmpty(block)) {
const rng = Range.normalizeRange(editor.selection.getRng());
const otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);
if (otherLi) {
editor.undoManager.transact(function () {
removeBlock(dom, block, root);
ToggleList.mergeWithAdjacentLists(dom, otherLi.parentNode);
editor.selection.select(otherLi, true);
editor.selection.collapse(isForward);
});
return true;
}
}
return false;
};
const backspaceDeleteCaret = function (editor: Editor, isForward: boolean): boolean {
return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);
};
const backspaceDeleteRange = function (editor: Editor): boolean {
const selectionStartElm = editor.selection.getStart();
const root = Selection.getClosestListRootElm(editor, selectionStartElm);
const startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);
if (startListParent || Selection.getSelectedListItems(editor).length > 0) {
editor.undoManager.transact(function () {
editor.execCommand('Delete');
NormalizeLists.normalizeLists(editor.dom, editor.getBody());
});
return true;
}
return false;
};
const backspaceDelete = function (editor: Editor, isForward: boolean): boolean {
return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);
};
const setup = function (editor: Editor) {
editor.on('keydown', function (e) {
if (e.keyCode === VK.BACKSPACE) {
if (backspaceDelete(editor, false)) {
e.preventDefault();
}
} else if (e.keyCode === VK.DELETE) {
if (backspaceDelete(editor, true)) {
e.preventDefault();
}
}
});
};
export {
setup,
backspaceDelete
};
@@ -0,0 +1,38 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import Editor from 'tinymce/core/api/Editor';
import { Compare, Replication, Element, Traverse } from '@ephox/sugar';
import * as SplitList from './SplitList';
import { Indentation } from '../listModel/Indentation';
import { Arr } from '@ephox/katamari';
const outdentDlItem = (editor: Editor, item: Element): void => {
if (Compare.is(item, 'dd')) {
Replication.mutate(item, 'dt');
} else if (Compare.is(item, 'dt')) {
Traverse.parent(item).each((dl) => SplitList.splitList(editor, dl.dom(), item.dom()));
}
};
const indentDlItem = (item: Element): void => {
if (Compare.is(item, 'dt')) {
Replication.mutate(item, 'dd');
}
};
const dlIndentation = (editor: Editor, indentation: Indentation, dlItems: Element[]) => {
if (indentation === Indentation.Indent) {
Arr.each(dlItems, indentDlItem);
} else {
Arr.each(dlItems, (item) => outdentDlItem(editor, item));
}
};
export {
dlIndentation
};
@@ -0,0 +1,38 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import VK from 'tinymce/core/api/util/VK';
import * as Settings from '../api/Settings';
import * as Delete from './Delete';
import { outdentListSelection, indentListSelection } from '../actions/Indendation';
const setupTabKey = function (editor) {
editor.on('keydown', function (e) {
// Check for tab but not ctrl/cmd+tab since it switches browser tabs
if (e.keyCode !== VK.TAB || VK.metaKeyPressed(e)) {
return;
}
editor.undoManager.transact(() => {
if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {
e.preventDefault();
}
});
});
};
const setup = function (editor) {
if (Settings.shouldIndentOnTab(editor)) {
setupTabKey(editor);
}
Delete.setup(editor);
};
export {
setup
};
@@ -0,0 +1,15 @@
export const enum ListAction {
ToggleUlList = 'ToggleUlList',
ToggleOlList = 'ToggleOlList',
ToggleDLList = 'ToggleDLList',
IndentList = 'IndentList',
OutdentList = 'OutdentList'
}
export const listToggleActionFromListName = (listName: 'UL' | 'OL' | 'DL'): ListAction => {
switch (listName) {
case 'UL': return ListAction.ToggleUlList;
case 'OL': return ListAction.ToggleOlList;
case 'DL': return ListAction.ToggleDLList;
}
};
@@ -0,0 +1,95 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Node, Text } from '@ephox/dom-globals';
const isTextNode = function (node: Node): node is Text {
return node && node.nodeType === 3;
};
const isListNode = function (node: Node) {
return node && (/^(OL|UL|DL)$/).test(node.nodeName);
};
const isOlUlNode = function (node: Node) {
return node && (/^(OL|UL)$/).test(node.nodeName);
};
const isListItemNode = function (node: Node) {
return node && /^(LI|DT|DD)$/.test(node.nodeName);
};
const isDlItemNode = function (node: Node) {
return node && /^(DT|DD)$/.test(node.nodeName);
};
const isTableCellNode = function (node: Node) {
return node && /^(TH|TD)$/.test(node.nodeName);
};
const isBr = function (node: Node) {
return node && node.nodeName === 'BR';
};
const isFirstChild = function (node: Node) {
return node.parentNode.firstChild === node;
};
const isLastChild = function (node: Node) {
return node.parentNode.lastChild === node;
};
const isTextBlock = function (editor, node: Node) {
return node && !!editor.schema.getTextBlockElements()[node.nodeName];
};
const isBlock = function (node: Node, blockElements) {
return node && node.nodeName in blockElements;
};
const isBogusBr = function (dom, node: Node) {
if (!isBr(node)) {
return false;
}
if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) {
return true;
}
return false;
};
const isEmpty = function (dom, elm, keepBookmarks?) {
const empty = dom.isEmpty(elm);
if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {
return false;
}
return empty;
};
const isChildOfBody = function (dom, elm) {
return dom.isChildOf(elm, dom.getRoot());
};
export {
isTextNode,
isListNode,
isOlUlNode,
isDlItemNode,
isListItemNode,
isTableCellNode,
isBr,
isFirstChild,
isLastChild,
isTextBlock,
isBlock,
isBogusBr,
isEmpty,
isChildOfBody
};
@@ -0,0 +1,50 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import DOMUtils from 'tinymce/core/api/dom/DOMUtils';
import Tools from 'tinymce/core/api/util/Tools';
import * as NodeType from './NodeType';
const DOM = DOMUtils.DOM;
const normalizeList = function (dom, ul) {
let sibling;
const parentNode = ul.parentNode;
// Move UL/OL to previous LI if it's the only child of a LI
if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) {
sibling = parentNode.previousSibling;
if (sibling && sibling.nodeName === 'LI') {
sibling.appendChild(ul);
if (NodeType.isEmpty(dom, parentNode)) {
DOM.remove(parentNode);
}
} else {
DOM.setStyle(parentNode, 'listStyleType', 'none');
}
}
// Append OL/UL to previous LI if it's in a parent OL/UL i.e. old HTML4
if (NodeType.isListNode(parentNode)) {
sibling = parentNode.previousSibling;
if (sibling && sibling.nodeName === 'LI') {
sibling.appendChild(ul);
}
}
};
const normalizeLists = function (dom, element) {
Tools.each(Tools.grep(dom.select('ol,ul', element)), function (ul) {
normalizeList(dom, ul);
});
};
export {
normalizeList,
normalizeLists
};
@@ -0,0 +1,58 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import RangeUtils from 'tinymce/core/api/dom/RangeUtils';
import * as NodeType from './NodeType';
import { Range, Node } from '@ephox/dom-globals';
interface Point {
container: Node;
offset: number;
}
const getNormalizedPoint = (container: Node, offset: number): Point => {
if (NodeType.isTextNode(container)) {
return { container, offset };
}
const node = RangeUtils.getNode(container, offset);
if (NodeType.isTextNode(node)) {
return {
container: node,
offset: offset >= container.childNodes.length ? node.data.length : 0
};
} else if (node.previousSibling && NodeType.isTextNode(node.previousSibling)) {
return {
container: node.previousSibling,
offset: node.previousSibling.data.length
};
} else if (node.nextSibling && NodeType.isTextNode(node.nextSibling)) {
return {
container: node.nextSibling,
offset: 0
};
}
return { container, offset };
};
const normalizeRange = (rng: Range): Range => {
const outRng = rng.cloneRange();
const rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);
outRng.setStart(rangeStart.container, rangeStart.offset);
const rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);
outRng.setEnd(rangeEnd.container, rangeEnd.offset);
return outRng;
};
export {
getNormalizedPoint,
normalizeRange
};
@@ -0,0 +1,108 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Node } from '@ephox/dom-globals';
import { Arr, Option } from '@ephox/katamari';
import { HTMLElement } from '@ephox/sand';
import DomQuery from 'tinymce/core/api/dom/DomQuery';
import Editor from 'tinymce/core/api/Editor';
import Tools from 'tinymce/core/api/util/Tools';
import * as NodeType from './NodeType';
const getParentList = function (editor) {
const selectionStart = editor.selection.getStart(true);
return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));
};
const isParentListSelected = function (parentList, selectedBlocks) {
return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;
};
const findSubLists = function (parentList) {
return Tools.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm: Node) {
return NodeType.isListNode(elm);
});
};
const getSelectedSubLists = function (editor) {
const parentList = getParentList(editor);
const selectedBlocks = editor.selection.getSelectedBlocks();
if (isParentListSelected(parentList, selectedBlocks)) {
return findSubLists(parentList);
} else {
return Tools.grep(selectedBlocks, function (elm: Node) {
return NodeType.isListNode(elm) && parentList !== elm;
});
}
};
const findParentListItemsNodes = function (editor, elms) {
const listItemsElms = Tools.map(elms, function (elm) {
const parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));
return parentLi ? parentLi : elm;
});
return DomQuery.unique(listItemsElms);
};
const getSelectedListItems = function (editor) {
const selectedBlocks = editor.selection.getSelectedBlocks();
return Tools.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) {
return NodeType.isListItemNode(block);
});
};
const getSelectedDlItems = (editor: Editor): Node[] => {
return Arr.filter(getSelectedListItems(editor), NodeType.isDlItemNode);
};
const getClosestListRootElm = function (editor, elm) {
const parentTableCell = editor.dom.getParents(elm, 'TD,TH');
const root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();
return root;
};
const findLastParentListNode = (editor: Editor, elm: Node): Option<Node> => {
const parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));
return Arr.last(parentLists);
};
const getSelectedLists = (editor: Editor): Node[] => {
const firstList = findLastParentListNode(editor, editor.selection.getStart());
const subsequentLists = Arr.filter(editor.selection.getSelectedBlocks(), NodeType.isOlUlNode);
return firstList.toArray().concat(subsequentLists);
};
const getSelectedListRoots = (editor: Editor): Node[] => {
const selectedLists = getSelectedLists(editor);
return getUniqueListRoots(editor, selectedLists);
};
const getUniqueListRoots = (editor: Editor, lists: Node[]): Node[] => {
const listRoots = Arr.map(lists, (list) => findLastParentListNode(editor, list).getOr(list));
return DomQuery.unique(listRoots);
};
const isList = (editor: Editor): boolean => {
const list = getParentList(editor);
return HTMLElement.isPrototypeOf(list);
};
export {
isList,
getParentList,
getSelectedSubLists,
getSelectedListItems,
getClosestListRootElm,
getSelectedDlItems,
getSelectedListRoots
};
@@ -0,0 +1,59 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import DOMUtils from 'tinymce/core/api/dom/DOMUtils';
import * as NodeType from './NodeType';
import { createTextBlock } from './TextBlock';
import Tools from 'tinymce/core/api/util/Tools';
const DOM = DOMUtils.DOM;
const splitList = function (editor, ul, li) {
let tmpRng, fragment, bookmarks, node, newBlock;
const removeAndKeepBookmarks = function (targetNode) {
Tools.each(bookmarks, function (node) {
targetNode.parentNode.insertBefore(node, li.parentNode);
});
DOM.remove(targetNode);
};
bookmarks = DOM.select('span[data-mce-type="bookmark"]', ul);
newBlock = createTextBlock(editor, li);
tmpRng = DOM.createRng();
tmpRng.setStartAfter(li);
tmpRng.setEndAfter(ul);
fragment = tmpRng.extractContents();
for (node = fragment.firstChild; node; node = node.firstChild) {
if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {
DOM.remove(node);
break;
}
}
if (!editor.dom.isEmpty(fragment)) {
DOM.insertAfter(fragment, ul);
}
DOM.insertAfter(newBlock, ul);
if (NodeType.isEmpty(editor.dom, li.parentNode)) {
removeAndKeepBookmarks(li.parentNode);
}
DOM.remove(li);
if (NodeType.isEmpty(editor.dom, ul)) {
DOM.remove(ul);
}
};
export {
splitList
};
@@ -0,0 +1,72 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import * as NodeType from './NodeType';
import { DocumentFragment, Node } from '@ephox/dom-globals';
import Editor from 'tinymce/core/api/Editor';
import * as Settings from '../api/Settings';
const createTextBlock = (editor: Editor, contentNode: Node): DocumentFragment => {
const dom = editor.dom;
const blockElements = editor.schema.getBlockElements();
const fragment = dom.createFragment();
const blockName = Settings.getForcedRootBlock(editor);
let node, textBlock, hasContentNode;
if (blockName) {
textBlock = dom.create(blockName);
if (textBlock.tagName === blockName.toUpperCase()) {
dom.setAttribs(textBlock, Settings.getForcedRootBlockAttrs(editor));
}
if (!NodeType.isBlock(contentNode.firstChild, blockElements)) {
fragment.appendChild(textBlock);
}
}
if (contentNode) {
while ((node = contentNode.firstChild)) {
const nodeName = node.nodeName;
if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {
hasContentNode = true;
}
if (NodeType.isBlock(node, blockElements)) {
fragment.appendChild(node);
textBlock = null;
} else {
if (blockName) {
if (!textBlock) {
textBlock = dom.create(blockName);
fragment.appendChild(textBlock);
}
textBlock.appendChild(node);
} else {
fragment.appendChild(node);
}
}
}
}
if (!blockName) {
fragment.appendChild(dom.create('br'));
} else {
// BR is needed in empty blocks
if (!hasContentNode) {
textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' }));
}
}
return fragment;
};
export {
createTextBlock
};
@@ -0,0 +1,3 @@
import { HTMLElement } from '@ephox/dom-globals';
export const isCustomList = (list: HTMLElement) => /\btox\-/.test(list.className);
@@ -0,0 +1,109 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Document } from '@ephox/dom-globals';
import { Arr, Option, Options } from '@ephox/katamari';
import { Attr, Css, Element, Insert, InsertAll, Node, Replication } from '@ephox/sugar';
import { Entry } from './Entry';
import { ListType } from './Util';
interface Segment {
list: Element;
item: Element;
}
const joinSegment = (parent: Segment, child: Segment): void => {
Insert.append(parent.item, child.list);
};
const joinSegments = (segments: Segment[]): void => {
for (let i = 1; i < segments.length; i++) {
joinSegment(segments[i - 1], segments[i]);
}
};
const appendSegments = (head: Segment[], tail: Segment[]): void => {
Options.lift2(Arr.last(head), Arr.head(tail), joinSegment);
};
const createSegment = (scope: Document, listType: ListType): Segment => {
const segment: Segment = {
list: Element.fromTag(listType, scope),
item: Element.fromTag('li', scope)
};
Insert.append(segment.list, segment.item);
return segment;
};
const createSegments = (scope: Document, entry: Entry, size: number): Segment[] => {
const segments: Segment[] = [];
for (let i = 0; i < size; i++) {
segments.push(createSegment(scope, entry.listType));
}
return segments;
};
const populateSegments = (segments: Segment[], entry: Entry): void => {
for (let i = 0; i < segments.length - 1; i++) {
Css.set(segments[i].item, 'list-style-type', 'none');
}
Arr.last(segments).each((segment) => {
Attr.setAll(segment.list, entry.listAttributes);
Attr.setAll(segment.item, entry.itemAttributes);
InsertAll.append(segment.item, entry.content);
});
};
const normalizeSegment = (segment: Segment, entry: Entry): void => {
if (Node.name(segment.list) !== entry.listType) {
segment.list = Replication.mutate(segment.list, entry.listType);
}
Attr.setAll(segment.list, entry.listAttributes);
};
const createItem = (scope: Document, attr: Record<string, any>, content: Element[]): Element => {
const item = Element.fromTag('li', scope);
Attr.setAll(item, attr);
InsertAll.append(item, content);
return item;
};
const appendItem = (segment: Segment, item: Element): void => {
Insert.append(segment.list, item);
segment.item = item;
};
const writeShallow = (scope: Document, cast: Segment[], entry: Entry): Segment[] => {
const newCast = cast.slice(0, entry.depth);
Arr.last(newCast).each((segment) => {
const item = createItem(scope, entry.itemAttributes, entry.content);
appendItem(segment, item);
normalizeSegment(segment, entry);
});
return newCast;
};
const writeDeep = (scope: Document, cast: Segment[], entry: Entry): Segment[] => {
const segments = createSegments(scope, entry, entry.depth - cast.length);
joinSegments(segments);
populateSegments(segments, entry);
appendSegments(cast, segments);
return cast.concat(segments);
};
const composeList = (scope: Document, entries: Entry[]): Option<Element> => {
const cast: Segment[] = Arr.foldl(entries, (cast, entry) => {
return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);
}, []);
return Arr.head(cast).map((segment) => segment.list);
};
export { composeList };
@@ -0,0 +1,67 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Element, Traverse, Replication, Attr, Node } from '@ephox/sugar';
import { Arr, Option } from '@ephox/katamari';
import { hasLastChildList, ListType } from './Util';
/*
General workflow: Parse lists to entries -> Manipulate entries -> Compose entries to lists
0-------1---2--------->Depth
<ol> |
<li>a</li> | Entry { depth: 1, content: [a], listType: ListType.OL, ... }
<li>b | Entry { depth: 1, content: [b], listType: ListType.OL, ... }
<ul> |
<li>c</li> | Entry { depth: 2, content: [c], listType: ListType.UL, ... }
</ul> |
</li> |
</ol> |
0-------1---2--------->Depth
*/
export interface Entry {
depth: number;
content: Element[];
isSelected: boolean;
listType: ListType;
listAttributes: Record<string, any>;
itemAttributes: Record<string, any>;
}
const isIndented = (entry: Entry) => {
return entry.depth > 0;
};
const isSelected = (entry: Entry) => {
return entry.isSelected;
};
const cloneItemContent = (li: Element): Element[] => {
const children = Traverse.children(li);
const content = hasLastChildList(li) ? children.slice(0, -1) : children;
return Arr.map(content, Replication.deep);
};
const createEntry = (li: Element, depth: number, isSelected: boolean): Option<Entry> => {
return Traverse.parent(li).filter(Node.isElement).map((list) => {
return {
depth,
isSelected,
content: cloneItemContent(li),
itemAttributes: Attr.clone(li),
listAttributes: Attr.clone(list),
listType: Node.name(list) as ListType
};
});
};
export {
createEntry,
isIndented,
isSelected
};
@@ -0,0 +1,29 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Entry } from './Entry';
export const enum Indentation {
Indent = 'Indent',
Outdent = 'Outdent',
Flatten = 'Flatten'
}
export const indentEntry = (indentation: Indentation, entry: Entry): void => {
switch (indentation) {
case Indentation.Indent:
entry.depth ++;
break;
case Indentation.Outdent:
entry.depth --;
break;
case Indentation.Flatten:
entry.depth = 0;
}
};
@@ -0,0 +1,48 @@
export function isCheckboxListItem(element) {
return element.classList && element.classList.contains('joplin-checklist');
}
export function findContainerListTypeFromEvent(event) {
if (isCheckboxListItem(event.element)) return 'joplinChecklist';
for (const parent of event.parents) {
if (isCheckboxListItem(parent)) return 'joplinChecklist';
}
return 'regular';
}
export function findContainerListTypeFromElement(element) {
while (element) {
if (element.nodeName === 'UL' || element.nodName === 'OL') {
return isCheckboxListItem(element) ? 'joplinChecklist' : 'regular';
}
element = element.parentNode;
}
return 'regular';
}
export function isJoplinChecklistItem(element) {
if (element.nodeName !== 'LI') return false;
const listType = findContainerListTypeFromElement(element);
return listType === 'joplinChecklist';
}
export function addJoplinChecklistCommands(editor, ToggleList) {
editor.addCommand('ToggleJoplinChecklistItem', function (ui, detail) {
const element = detail.element;
if (!isJoplinChecklistItem(element)) return;
if (!element.classList || !element.classList.contains('checked')) {
element.classList.add('checked');
} else {
element.classList.remove('checked');
}
});
editor.addCommand('InsertJoplinChecklist', function (ui, detail) {
detail = Object.assign({}, detail, { listType: 'joplinChecklist' });
ToggleList.toggleList(editor, 'UL', detail);
});
}
@@ -0,0 +1,68 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Arr, Fun, Option, Options } from '@ephox/katamari';
import { Element, Fragment, InsertAll, Remove } from '@ephox/sugar';
import Editor from 'tinymce/core/api/Editor';
import { fireListEvent } from '../api/Events';
import { ListAction } from '../core/ListAction';
import * as Selection from '../core/Selection';
import { createTextBlock } from '../core/TextBlock';
import { composeList } from './ComposeList';
import { Entry, isIndented, isSelected } from './Entry';
import { Indentation, indentEntry } from './Indentation';
import { normalizeEntries } from './NormalizeEntries';
import { EntrySet, ItemSelection, parseLists } from './ParseLists';
import { hasFirstChildList } from './Util';
const outdentedComposer = (editor: Editor, entries: Entry[]): Element[] => {
return Arr.map(entries, (entry) => {
const content = Fragment.fromElements(entry.content);
return Element.fromDom(createTextBlock(editor, content.dom()));
});
};
const indentedComposer = (editor: Editor, entries: Entry[]): Element[] => {
normalizeEntries(entries);
return composeList(editor.contentDocument, entries).toArray();
};
const composeEntries = (editor, entries: Entry[]): Element[] => {
return Arr.bind(Arr.groupBy(entries, isIndented), (entries) => {
const groupIsIndented = Arr.head(entries).map(isIndented).getOr(false);
return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);
});
};
const indentSelectedEntries = (entries: Entry[], indentation: Indentation): void => {
Arr.each(Arr.filter(entries, isSelected), (entry) => indentEntry(indentation, entry));
};
const getItemSelection = (editor: Editor): Option<ItemSelection> => {
const selectedListItems = Arr.map(Selection.getSelectedListItems(editor), Element.fromDom);
return Options.lift2(
Arr.find(selectedListItems, Fun.not(hasFirstChildList)),
Arr.find(Arr.reverse(selectedListItems), Fun.not(hasFirstChildList)),
(start, end) => ({ start, end }));
};
const listIndentation = (editor: Editor, lists: Element[], indentation: Indentation) => {
const entrySets: EntrySet[] = parseLists(lists, getItemSelection(editor));
Arr.each(entrySets, (entrySet) => {
indentSelectedEntries(entrySet.entries, indentation);
const composedLists = composeEntries(editor, entrySet.entries);
Arr.each(composedLists, (composedList) => {
fireListEvent(editor, indentation === Indentation.Indent ? ListAction.IndentList : ListAction.OutdentList, composedList.dom());
});
InsertAll.before(entrySet.sourceList, composedLists);
Remove.remove(entrySet.sourceList);
});
};
export { listIndentation };
@@ -0,0 +1,40 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Arr, Option } from '@ephox/katamari';
import { Entry } from './Entry';
const cloneListProperties = (target: Entry, source: Entry): void => {
target.listType = source.listType;
target.listAttributes = { ...source.listAttributes };
};
// Closest entry above in the same list
const previousSiblingEntry = (entries: Entry[], start: number): Option<Entry> => {
const depth = entries[start].depth;
for (let i = start - 1; i >= 0; i--) {
if (entries[i].depth === depth) {
return Option.some(entries[i]);
}
if (entries[i].depth < depth) {
break;
}
}
return Option.none();
};
const normalizeEntries = (entries: Entry[]): void => {
Arr.each(entries, (entry, i) => {
previousSiblingEntry(entries, i).each((matchingEntry) => {
cloneListProperties(entry, matchingEntry);
});
});
};
export {
normalizeEntries
};
@@ -0,0 +1,71 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Arr, Cell, Option } from '@ephox/katamari';
import { Compare, Element, Traverse } from '@ephox/sugar';
import { createEntry, Entry } from './Entry';
import { isList } from './Util';
type Parser = (depth: number, itemSelection: Option<ItemSelection>, selectionState: Cell<boolean>, element: Element) => Entry[];
export interface ItemSelection {
start: Element;
end: Element;
}
export interface EntrySet {
entries: Entry[];
sourceList: Element;
}
const parseItem: Parser = (depth: number, itemSelection: Option<ItemSelection>, selectionState: Cell<boolean>, item: Element): Entry[] => {
return Traverse.firstChild(item).filter(isList).fold(() => {
// Update selectionState (start)
itemSelection.each((selection) => {
if (Compare.eq(selection.start, item)) {
selectionState.set(true);
}
});
const currentItemEntry = createEntry(item, depth, selectionState.get());
// Update selectionState (end)
itemSelection.each((selection) => {
if (Compare.eq(selection.end, item)) {
selectionState.set(false);
}
});
const childListEntries: Entry[] = Traverse.lastChild(item)
.filter(isList)
.map((list) => parseList(depth, itemSelection, selectionState, list))
.getOr([]);
return currentItemEntry.toArray().concat(childListEntries);
}, (list) => parseList(depth, itemSelection, selectionState, list));
};
const parseList: Parser = (depth: number, itemSelection: Option<ItemSelection>, selectionState: Cell<boolean>, list: Element): Entry[] => {
return Arr.bind(Traverse.children(list), (element) => {
const parser = isList(element) ? parseList : parseItem;
const newDepth = depth + 1;
return parser(newDepth, itemSelection, selectionState, element);
});
};
const parseLists = (lists: Element[], itemSelection: Option<ItemSelection>): EntrySet[] => {
const selectionState = Cell(false);
const initialDepth = 0;
return Arr.map(lists, (list) => ({
sourceList: list,
entries: parseList(initialDepth, itemSelection, selectionState, list)
}));
};
export { parseLists };
@@ -0,0 +1,31 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import { Element, Traverse, Compare } from '@ephox/sugar';
export const enum ListType {
OL = 'ol',
UL = 'ul'
}
const isList = (el: Element) => {
return Compare.is(el, 'OL,UL');
};
const hasFirstChildList = (el: Element) => {
return Traverse.firstChild(el).map(isList).getOr(false);
};
const hasLastChildList = (el: Element) => {
return Traverse.lastChild(el).map(isList).getOr(false);
};
export {
isList,
hasFirstChildList,
hasLastChildList
};
@@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "amd",
"target": "es6",
"sourceMap": true,
"outFile": "list.js"
},
"include": [
"./**/*.ts"
],
"exclude": [
"**/node_modules"
]
}
@@ -0,0 +1,113 @@
/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*/
import Tools from 'tinymce/core/api/util/Tools';
import * as Settings from '../api/Settings';
import * as NodeType from '../core/NodeType';
import Editor from 'tinymce/core/api/Editor';
import { isCustomList } from '../core/Util';
import { findContainerListTypeFromEvent, isJoplinChecklistItem } from '../listModel/JoplinListUtil';
const findIndex = function (list, predicate) {
for (let index = 0; index < list.length; index++) {
const element = list[index];
if (predicate(element)) {
return index;
}
}
return -1;
};
const listState = function (editor: Editor, listName, options:any = {}) {
options = {
listType: 'regular',
...options,
};
return function (buttonApi) {
const nodeChangeHandler = (e) => {
const tableCellIndex = findIndex(e.parents, NodeType.isTableCellNode);
const parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents;
const lists = Tools.grep(parents, NodeType.isListNode);
const listType = findContainerListTypeFromEvent(e);
buttonApi.setActive(listType === options.listType && lists.length > 0 && lists[0].nodeName === listName && !isCustomList(lists[0]));
};
const editorClickHandler = (event) => {
if (!isJoplinChecklistItem(event.target)) return;
// We only process the click if it's within the checkbox itself (and not the label).
// That checkbox, based on
// the current styling is in the negative margin, so offsetX is negative when clicking
// on the checkbox itself, and positive when clicking on the label. This is strongly
// dependent on how the checkbox is styled, so if the style is changed, this might need
// to be updated too.
// For the styling, see:
// packages/renderer/MdToHtml/rules/checkbox.ts
//
// The previous solution was to use "pointer-event: none", which mostly work, however
// it means that links are no longer clickable when they are within the checkbox label.
if (event.offsetX >= 0) return;
editor.execCommand('ToggleJoplinChecklistItem', false, { element: event.target });
}
if (options.listType === 'joplinChecklist') {
editor.on('click', editorClickHandler);
}
editor.on('NodeChange', nodeChangeHandler);
return () => {
if (options.listType === 'joplinChecklist') {
editor.off('click', editorClickHandler);
}
editor.off('NodeChange', nodeChangeHandler);
}
};
};
const register = function (editor: Editor) {
const hasPlugin = function (editor, plugin) {
const plugins = editor.settings.plugins ? editor.settings.plugins : '';
return Tools.inArray(plugins.split(/[ ,]/), plugin) !== -1;
};
const _ = Settings.getLocalizationFunction(editor);
const exec = (command) => () => editor.execCommand(command);
if (!hasPlugin(editor, 'advlist')) {
editor.ui.registry.addToggleButton('numlist', {
icon: 'ordered-list',
active: false,
tooltip: 'Numbered list',
onAction: exec('InsertOrderedList'),
onSetup: listState(editor, 'OL')
});
editor.ui.registry.addToggleButton('bullist', {
icon: 'unordered-list',
active: false,
tooltip: 'Bullet list',
onAction: exec('InsertUnorderedList'),
onSetup: listState(editor, 'UL')
});
editor.ui.registry.addToggleButton('joplinChecklist', {
icon: 'checklist',
active: false,
tooltip: _('Checkbox list'),
onAction: exec('InsertJoplinChecklist'),
onSetup: listState(editor, 'UL', { listType: 'joplinChecklist' })
});
}
};
export {
register
};
+23
View File
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"moduleResolution": "node",
"target": "es5",
"module": "es2015",
"importHelpers": true,
"lib": ["es2015"],
"declaration": true,
"noUnusedLocals": true,
"sourceMap": true,
"outDir": "lib",
"baseUrl": "."
},
"include": [
"src/demo/ts",
"src/main/ts",
"src/test/ts",
"node_modules/@ephox/**/*/api/Main.d.ts"
],
"files": [
"global.d.ts",
],
}

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