1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Merge branch 'dev' of github.com:laurent22/joplin into dev

This commit is contained in:
Laurent Cozic 2020-09-01 20:55:12 +01:00
commit c01219e6be
24 changed files with 2741 additions and 2246 deletions

View File

@ -36,6 +36,7 @@ If you want to start contributing to the project's code, please follow these gui
- Before adding a new feature, ask about it in the [Github Issue Tracker](https://github.com/laurent22/joplin/issues?utf8=%E2%9C%93&q=is%3Aissue) or the [Joplin Forum](https://discourse.joplinapp.org/), or check if existing discussions exist to make sure the new functionality is desired.
- **Changes that will consist in more than 50 lines of code should be discussed the [Joplin Forum](https://discourse.joplinapp.org/)**, so that you don't spend too much time implementing something that might not be accepted.
- All the applications share the same backend (database, synchronisation, settings, models, business logic, etc.) so if you change something in the backend in one app, makes sure it still work in the other apps. Usually it does, but keep this in mind.
- Pull requests that make many changes using an automated tool, like for spell fixing, styling, etc. will not be accepted. An exception would be if the changes have been discussed in the forum and someone has agreed to review **and test** the pull request.
Building the apps is relatively easy - please [see the build instructions](https://github.com/laurent22/joplin/blob/master/BUILD.md) for more details.

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,10 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n"
"X-Generator: Poedit 2.4.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
#: CliClient/app/command-cp.js:13
msgid ""
@ -822,7 +824,7 @@ msgstr "Exportando para \"%s\" com o formato \"%s\". Por favor, aguarde..."
#: ElectronClient/InteropServiceHelper.js:164
#, javascript-format
msgid "Could not export notes: %s"
msgstr "Não foi possível exportar a nota: %s"
msgstr "Não foi possível exportar notas: %s"
#: ElectronClient/checkForUpdates.js:138
msgid "Current version is up-to-date."
@ -932,9 +934,9 @@ msgid "Delete"
msgstr "Excluir"
#: ElectronClient/gui/SideBar/SideBar.min.js:276
#, fuzzy, javascript-format
#, javascript-format
msgid "Remove tag \"%s\" and its descendant tags from all notes?"
msgstr "Remover a tag \"%s\" de todas as notas?"
msgstr "Remover a tag \"%s\" e seus descendentes de todas as notas?"
#: ElectronClient/gui/SideBar/SideBar.min.js:278
#: ElectronClient/gui/SideBar.min.js:292
@ -1837,7 +1839,7 @@ msgstr "Estatísticas"
#: ElectronClient/gui/NoteContentPropertiesDialog.js:111
#, javascript-format
msgid "Read time: %s min"
msgstr ""
msgstr "Tempo de leitura: %s min"
#: ElectronClient/gui/NoteContentPropertiesDialog.js:112
#: ElectronClient/gui/ShareNoteDialog.js:175
@ -2214,7 +2216,7 @@ msgstr "Nível ID desconhecido: %s"
#: ReactNativeClient/lib/SyncTargetAmazonS3.js:28
msgid "AWS S3"
msgstr ""
msgstr "AWS S3"
#: ReactNativeClient/lib/SyncTargetDropbox.js:25
msgid "Dropbox"
@ -2358,15 +2360,15 @@ msgstr "Senha do WebDAV"
#: ReactNativeClient/lib/models/Setting.js:189
msgid "AWS S3 bucket"
msgstr ""
msgstr "AWS S3 bucket"
#: ReactNativeClient/lib/models/Setting.js:200
msgid "AWS key"
msgstr ""
msgstr "AWS key"
#: ReactNativeClient/lib/models/Setting.js:210
msgid "AWS secret"
msgstr ""
msgstr "AWS secret"
#: ReactNativeClient/lib/models/Setting.js:224
msgid "Attachment download behaviour"
@ -2609,12 +2611,12 @@ msgstr "Atualizar automaticamente o aplicativo"
#: ReactNativeClient/lib/models/Setting.js:596
msgid "Get pre-releases when checking for updates"
msgstr "Obter pre-releases quando for checar atualizações"
msgstr "Obter pre-lançamentos quando checar por atualizações"
#: ReactNativeClient/lib/models/Setting.js:596
#, javascript-format
msgid "See the pre-release page for more details: %s"
msgstr "Ver página de pre-release para mais detalhes: %s"
msgstr "Ver página de pre-lançamentos para mais detalhes: %s"
#: ReactNativeClient/lib/models/Setting.js:604
msgid "Synchronisation interval"
@ -2697,7 +2699,7 @@ msgstr "Modo do Teclado"
#: ReactNativeClient/lib/models/Setting.js:650
msgid "Default"
msgstr "Default"
msgstr "Padrão"
#: ReactNativeClient/lib/models/Setting.js:651
msgid "Emacs"
@ -2881,17 +2883,16 @@ msgstr ""
"%s"
#: ReactNativeClient/lib/models/Tag.js:384
#, fuzzy
msgid "Cannot move tag to this location."
msgstr "Não é possível mover a nota para este local"
msgstr "Não é possível mover a tag para este local"
#: ReactNativeClient/lib/models/Tag.js:429
msgid "Tag name cannot start or end with a `/`."
msgstr ""
msgstr "O nome da tag não pode começar ou terminar com `/`."
#: ReactNativeClient/lib/models/Tag.js:431
msgid "Tag name cannot contain `//`."
msgstr ""
msgstr "O nome da tag não pode conter `//`."
#: ReactNativeClient/lib/models/Tag.js:482
#, javascript-format
@ -3514,7 +3515,6 @@ msgid "Forward"
msgstr "Encaminhar"
#: ReactNativeClient/lib/commands/synchronize.js:17
#, fuzzy
msgid "Synchronize"
msgstr "Sincronizar"

View File

@ -24,8 +24,8 @@ msgid ""
"Duplicates the notes matching <note> to [notebook]. If no notebook is "
"specified the note is duplicated in the current notebook."
msgstr ""
"Дублирует заметки соответствующие выражению <note> в блокнот [notebook]. "
"Если блокнот не указан - заметки дублируются в текущем блокноте."
"Дублирует заметки, соответствующие выражению <note>, в блокнот [notebook]. "
"Если блокнот не указан, заметки дублируются в текущем блокноте."
#: CliClient/app/command-cp.js:24 CliClient/app/command-cp.js:27
#: CliClient/app/command-import.js:34 CliClient/app/command-mv.js:22
@ -75,7 +75,7 @@ msgid ""
msgstr ""
"Отображает только элементы заданного типа(ов). Поддерживаемые типы: `n` для "
"заметок, `t` для задач или `nt` для заметок и задач (напр. `-tt` выведет "
"только задачи, в то время как `-ttd` выведет и заметки и задачи)."
"только задачи, в то время как `-ttd` выведет и заметки, и задачи)."
#: CliClient/app/command-ls.js:31
msgid "Either \"text\" or \"json\""
@ -230,7 +230,7 @@ msgstr "Расшифровано элементов: %d"
#, javascript-format
msgid "Skipped items: %d (use --retry-failed-items to retry decrypting them)"
msgstr ""
"Пропущено элементов: %d (используйте команду --retry-failed-items чтобы "
"Пропущено элементов: %d (используйте команду --retry-failed-items, чтобы "
"повторить попытку расшифровки)"
#: CliClient/app/command-e2ee.js:68
@ -273,7 +273,7 @@ msgstr "Создает новый блокнот."
#: CliClient/app/command-mv.js:14
msgid "Moves the notes matching <note> to [notebook]."
msgstr ""
"Перемещает заметки соответствующие выражению <note> в блокнот [notebook]."
"Перемещает заметки, соответствующие выражению <note>, в блокнот [notebook]."
#: CliClient/app/command-config.js:13
msgid ""
@ -282,12 +282,12 @@ msgid ""
"current configuration."
msgstr ""
"Выводит или задает значение параметра конфигурации. Если значение [value] не "
"указано - выведет текущее значение параметра [name]. Если не указаны ни имя "
"[name], ни значение [value] - выведет всю текущую конфигурацию."
"указано, выведет текущее значение параметра [name]. Если не указаны ни имя "
"[name], ни значение [value], выведет всю текущую конфигурацию."
#: CliClient/app/command-config.js:18
msgid "Also displays unset and hidden config variables."
msgstr "Также выводит не установленные и скрытые параметры конфигурации."
msgstr "Также выводит неустановленные и скрытые параметры конфигурации."
#: CliClient/app/command-config.js:79
#, javascript-format
@ -364,7 +364,7 @@ msgid ""
"operation."
msgstr ""
"Файл блокировки уже существует. Если вы уверены, что синхронизация не "
"выполняется - вы можете вручную удалить файл блокировки \"%s\" и возобновить "
"выполняется, вы можете вручную удалить файл блокировки \"%s\" и возобновить "
"операцию."
#: CliClient/app/command-sync.js:175
@ -555,7 +555,7 @@ msgid ""
msgstr ""
"Один или несколько элементов зашифрованы. Для расшифровки может "
"потребоваться мастер-пароль. Для начала расшифровки введите `e2ee decrypt`. "
"Если мастер-пароль уже был введен - зашифрованные элементы уже "
"Если мастер-пароль уже был введен, зашифрованные элементы уже "
"расшифровываются в фоновом режиме и вскоре будут доступны."
#: CliClient/app/gui/NoteWidget.js:50
@ -647,7 +647,7 @@ msgid ""
msgstr ""
"В любой команде можно ссылаться на заметку или блокнот по названию или ID, "
"либо используя ярлыки `$n` или `$b`, указывающие на текущую заметку или "
"блокнот соответственно. С помощью `$c` можно ссылаться на текущий выбранный "
"блокнот, соответственно. С помощью `$c` можно ссылаться на текущий выбранный "
"элемент."
#: CliClient/app/command-help.js:79
@ -664,7 +664,7 @@ msgstr ""
#: CliClient/app/command-help.js:81
msgid "To maximise/minimise the console, press \"tc\"."
msgstr "Чтобы развернуть/свернуть консоль используйте комбинацию \"tc\"."
msgstr "Чтобы развернуть/свернуть консоль, используйте комбинацию \"tc\"."
#: CliClient/app/command-help.js:82
msgid "To enter command line mode, press \":\""
@ -678,7 +678,7 @@ msgstr "Для выхода из режима командной строки н
msgid ""
"For the list of keyboard shortcuts and config options, type `help keymap`"
msgstr ""
"Чтобы получить список сочетаний клавиш и настроек конфигурации введите `help "
"Чтобы получить список сочетаний клавиш и настроек конфигурации, введите `help "
"keymap`"
#: CliClient/app/command-todo.js:14
@ -690,7 +690,7 @@ msgid ""
msgstr ""
"<todo-command> может принимать значения \"toggle\" или \"clear\". \"toggle\" "
"переключает статус выбранной задачи (с завершенной на незавершенную и "
"наоборот). При применении к обычной заметке - заметка преобразуется в "
"наоборот). При применении к обычной заметке она преобразуется в "
"задачу. \"clear\" преобразует выбранную задачу в обычную заметку."
#: CliClient/app/command-exit.js:11
@ -815,7 +815,7 @@ msgid ""
"Type a note title or part of its content to jump to it. Or type # followed "
"by a tag name, or @ followed by a notebook name."
msgstr ""
"Введите название заметки чтобы перейти к ней, либо введите #имя_метки или "
"Введите название заметки, чтобы перейти к ней, либо введите #имя_метки или "
"@имя_блокнота."
#: ElectronClient/plugins/GotoAnything.min.js:493
@ -1117,7 +1117,7 @@ msgid ""
"Please wait for all attachments to be downloaded and decrypted. You may also "
"switch to %s to edit the note."
msgstr ""
"Пожалуйста дождитесь окончания загрузки и расшифровки всех вложений. Вы "
"Пожалуйста, дождитесь окончания загрузки и расшифровки всех вложений. Вы "
"можете переключиться на %s для редактирования заметки."
#: ElectronClient/gui/NoteEditor/utils/useMessageHandler.js:70
@ -1218,7 +1218,7 @@ msgstr "Заголовок"
#: ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js:75
#: ElectronClient/gui/NoteText.min.js:1770
msgid "Horizontal Rule"
msgstr "Горизотальный разделитель"
msgstr "Горизонтальный разделитель"
#: ElectronClient/gui/NoteEditor/commands/focusElementNoteTitle.js:15
msgid "Note title"
@ -1762,7 +1762,7 @@ msgstr ""
"\n"
"1. Синхронизируйте все ваши устройства.\n"
"2. Нажмите “%s”.\n"
"3. Ждите завершения. Во время работы избегайте изменения заметок на других "
"3. Ждите завершения. Во время работы не изменяйте заметки на других "
"устройствах, чтобы избежать конфликтов.\n"
"4. После завершения синхронизации на этом устройстве синхронизируйте все "
"остальные устройства и ждите завершения.\n"
@ -1782,7 +1782,7 @@ msgstr "Шифрование:"
#: ElectronClient/gui/StatusScreen.min.js:33
msgid "Please select where the sync status should be exported to"
msgstr ""
"Пожалуйста, выберите куда должен быть экспортирован статус синхронизации"
"Пожалуйста, выберите, куда должен быть экспортирован статус синхронизации"
#: ElectronClient/gui/StatusScreen.min.js:71
#: ReactNativeClient/lib/components/screens/status.js:112
@ -2194,7 +2194,7 @@ msgstr ""
"Откройте следующую ссылку в вашем браузере для аутентификации приложения. "
"Приложением будет создан отдельный каталог \"Apps/Joplin\", в котором будет "
"происходить работа с файлами. У приложения не будет доступа ни к каким-либо "
"файлам за пределами этого каталога ни к каким-либо другим личным данным. "
"файлам за пределами этого каталога, ни к каким-либо другим личным данным. "
"Никакая информация не будет передана третьим лицам."
#: ReactNativeClient/lib/registry.js:156
@ -2391,9 +2391,9 @@ msgid ""
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
"the attachments are downloaded whether you open the note or not."
msgstr ""
"В режиме “Ручной” вложения загружаются толко если на них кликнуть. В режиме "
"В режиме “Ручной” вложения загружаются, только если на них кликнуть. В режиме "
"“Автоматически” вложения загружаются при открытии заметки. В режиме “Всегда” "
"вложения загружаются не зависимо от того была заметка открыта или нет."
"вложения загружаются вне зависимости от того, была заметка открыта или нет."
#: ReactNativeClient/lib/models/Setting.js:228
msgid "Always"
@ -2433,11 +2433,11 @@ msgstr "Автоматическая смена темы в соответств
#: ReactNativeClient/lib/models/Setting.js:327
msgid "Preferred light theme"
msgstr "Предпочитемая светлая тема"
msgstr "Предпочитаемая светлая тема"
#: ReactNativeClient/lib/models/Setting.js:341
msgid "Preferred dark theme"
msgstr "Предпочитемая тёмная тема"
msgstr "Предпочитаемая тёмная тема"
#: ReactNativeClient/lib/models/Setting.js:346
msgid "Show note counts"
@ -2526,7 +2526,7 @@ msgstr "Включить поддержку синтаксиса Fountain"
#: ReactNativeClient/lib/models/Setting.js:468
msgid "Enable Mermaid diagrams support"
msgstr "Включить поддержку Mermaid диаграм"
msgstr "Включить поддержку диаграмм Mermaid"
#: ReactNativeClient/lib/models/Setting.js:470
msgid "Enable ==mark== syntax"
@ -2609,7 +2609,7 @@ msgid ""
"font."
msgstr ""
"Для корректного отображения требуется задать *моноширинный* шрифт. Если "
"шрифт не был задан или выбран некорректный шрифт будет использован шрифт по "
"шрифт не был задан или выбран некорректный шрифт, будет использован шрифт по "
"умолчанию."
#: ReactNativeClient/lib/models/Setting.js:589
@ -2663,7 +2663,7 @@ msgid ""
"If none is provided it will try to auto-detect the default editor."
msgstr ""
"Команда запуска внешнего текстового редактора (может включать аргументы "
"командной строки). Если команда не задана - будет произведена попытка "
"командной строки). Если команда не задана, будет произведена попытка "
"автоматического определения редактора по умолчанию."
#: ReactNativeClient/lib/models/Setting.js:623
@ -2734,7 +2734,7 @@ msgid ""
"changes before clicking on \"Check synchronisation configuration\"."
msgstr ""
"Разделенный запятыми список путей к файлам сертификатов (поддерживаются как "
"каталоги так и абсолютные пути к отдельным файлам). Например: /my/cert_dir, /"
"каталоги, так и абсолютные пути к отдельным файлам). Например: /my/cert_dir, /"
"other/custom.pem. Обратите внимание, что если вы вносите изменения в "
"настройки TLS, вы должны сохранить внесенные изменения перед нажатием на "
"\"Проверить настройки синхронизации\"."
@ -2793,7 +2793,7 @@ msgid ""
"item with a factor of 2 will take twice as much space as an item with a "
"factor of 1.Restart app to see changes."
msgstr ""
"Параметр \"фактор\" отвечает за то, как элемент будет расти или уменьшаться "
"Параметр \"фактор\" отвечает за то, как элемент будет расти или уменьшаться, "
"чтобы поместиться в свободное пространство контейнера. Элемент с фактором 2 "
"займёт в 2 раза больше места, чем элемент с фактором 1. Перезапустите "
"приложение, чтобы изменения вступили в силу."
@ -2854,7 +2854,7 @@ msgid ""
"the WYSIWYG editor."
msgstr ""
"Данные плагины расширяют отрисовщик Markdown доп. функциями. Учтите, что эти "
"функции не являются стандартными для Markdown и большонство из них будет "
"функции не являются стандартными для Markdown и большинство из них будет "
"работать только в Joplin. Кроме того, некоторые из них *несовместимы* с "
"редактором WYSIWYG. При открытии заметки с такими плагинами в WYSIWYG "
"форматирование будет утеряно. Ниже отмечены плагины, совместимые с "
@ -3235,7 +3235,7 @@ msgstr "Только ошибки"
#: ReactNativeClient/lib/components/screens/config.js:50
msgid "Warning"
msgstr "Предупрежение"
msgstr "Предупреждение"
#: ReactNativeClient/lib/components/screens/config.js:50
msgid ""
@ -3744,7 +3744,7 @@ msgstr ""
#~ "to continue?"
#~ msgstr ""
#~ "Отключение шифрования означает, что *все* ваши заметки и вложения будут "
#~ "расшифрованы и отправлены в незашифрованом виде к цели синхронизации. Вы "
#~ "расшифрованы и отправлены в незашифрованном виде к цели синхронизации. Вы "
#~ "хотите продолжить?"
#~ msgid "Master Keys"

View File

@ -1,7 +1,7 @@
const { _, setLocale } = require('lib/locale.js');
const { shim } = require('lib/shim');
const { dirname, toSystemSlashes } = require('lib/path-utils.js');
const { BrowserWindow, nativeTheme } = require('electron');
const { shim } = require('lib/shim.js');
class Bridge {
@ -194,6 +194,8 @@ class Bridge {
execPath: process.env.PORTABLE_EXECUTABLE_FILE,
};
app.relaunch(options);
} else if (shim.isLinux()) {
this.showInfoMessageBox(_('The app is now going to close. Please relaunch it to complete the process.'));
} else {
app.relaunch();
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,51 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const React = require('react');
const react_1 = require('react');
const KeymapService_1 = require('../../lib/services/KeymapService');
const styles_1 = require('./styles');
const { _ } = require('lib/locale');
const keymapService = KeymapService_1.default.instance();
exports.ShortcutRecorder = ({ onSave, onReset, onCancel, onError, initialAccelerator, commandName, themeId }) => {
const styles = styles_1.default(themeId);
const [accelerator, setAccelerator] = react_1.useState(initialAccelerator);
const [saveAllowed, setSaveAllowed] = react_1.useState(true);
react_1.useEffect(() => {
try {
// Only perform validations if there's an accelerator provided
// Otherwise performing a save means that it's going to be disabled
if (accelerator) {
keymapService.validateAccelerator(accelerator);
keymapService.validateKeymap({ accelerator, command: commandName });
}
// Discard previous errors
onError({ recorderError: null });
setSaveAllowed(true);
} catch (recorderError) {
onError({ recorderError });
setSaveAllowed(false);
}
}, [accelerator]);
const handleKeydown = (event) => {
event.preventDefault();
const newAccelerator = keymapService.domToElectronAccelerator(event);
switch (newAccelerator) {
case 'Enter':
if (saveAllowed) { return onSave({ commandName, accelerator }); }
break;
case 'Escape':
return onCancel({ commandName });
case 'Backspace':
case 'Delete':
return setAccelerator('');
default:
setAccelerator(newAccelerator);
}
};
return (React.createElement('div', { style: styles.recorderContainer },
React.createElement('input', { value: accelerator, placeholder: _('Press the shortcut'), onKeyDown: handleKeydown, style: styles.recorderInput, readOnly: true, autoFocus: true }),
React.createElement('button', { style: styles.inlineButton, disabled: !saveAllowed, onClick: () => onSave({ commandName, accelerator }) }, _('Save')),
React.createElement('button', { style: styles.inlineButton, onClick: () => onReset({ commandName }) }, _('Restore')),
React.createElement('button', { style: styles.inlineButton, onClick: () => onCancel({ commandName }) }, _('Cancel'))));
};
// # sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hvcnRjdXRSZWNvcmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIlNob3J0Y3V0UmVjb3JkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLGlDQUEyRDtBQUUzRCxvRUFBNkQ7QUFDN0QscUNBQStCO0FBRS9CLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDcEMsTUFBTSxhQUFhLEdBQUcsdUJBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQVlsQyxRQUFBLGdCQUFnQixHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBeUIsRUFBRSxFQUFFO0lBQzNJLE1BQU0sTUFBTSxHQUFHLGdCQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEMsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxnQkFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbkUsTUFBTSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsR0FBRyxnQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXJELGlCQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2QsSUFBSTtZQUNILDhEQUE4RDtZQUM5RCxtRUFBbUU7WUFDbkUsSUFBSSxXQUFXLEVBQUU7Z0JBQ2hCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0MsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQzthQUNwRTtZQUVELDBCQUEwQjtZQUMxQixPQUFPLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7UUFBQyxPQUFPLGFBQWEsRUFBRTtZQUN2QixPQUFPLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0QjtJQUNGLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbEIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFvQyxFQUFFLEVBQUU7UUFDOUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRSxRQUFRLGNBQWMsRUFBRTtZQUN4QixLQUFLLE9BQU87Z0JBQ1gsSUFBSSxXQUFXO29CQUFFLE9BQU8sTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQzdELE1BQU07WUFDUCxLQUFLLFFBQVE7Z0JBQ1osT0FBTyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssUUFBUTtnQkFDWixPQUFPLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQjtnQkFDQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDL0I7SUFDRixDQUFDLENBQUM7SUFFRixPQUFPLENBQ04sNkJBQUssS0FBSyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7UUFDbkMsK0JBQ0MsS0FBSyxFQUFFLFdBQVcsRUFDbEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUNwQyxTQUFTLEVBQUUsYUFBYSxFQUN4QixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFDM0IsUUFBUSxRQUNSLFNBQVMsU0FDUjtRQUVGLGdDQUFRLEtBQUssRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLElBQzdHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FDRjtRQUNULGdDQUFRLEtBQUssRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUN6RSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQ0w7UUFDVCxnQ0FBUSxLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsSUFDMUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUNKLENBQ0osQ0FDTixDQUFDO0FBQ0gsQ0FBQyxDQUFDIn0=

View File

@ -0,0 +1,53 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const { buildStyle } = require('lib/theme');
function styles(themeId) {
return buildStyle('KeymapConfigScreen', themeId, (theme) => {
return {
container: Object.assign(Object.assign({}, theme.containerStyle), { padding: 16 }),
actionsContainer: {
display: 'flex',
flexDirection: 'row',
},
recorderContainer: {
padding: 2,
flexGrow: 1,
},
filterInput: Object.assign(Object.assign({}, theme.inputStyle), { flexGrow: 1, minHeight: 29, alignSelf: 'center' }),
recorderInput: Object.assign(Object.assign({}, theme.inputStyle), { minHeight: 29 }),
label: Object.assign(Object.assign({}, theme.textStyle), { alignSelf: 'center', marginRight: 10 }),
table: Object.assign(Object.assign({}, theme.containerStyle), { marginTop: 16, overflow: 'auto', width: '100%' }),
tableShortcutColumn: Object.assign(Object.assign({}, theme.textStyle), { width: '60%' }),
tableCommandColumn: Object.assign(Object.assign({}, theme.textStyle), { width: 'auto' }),
tableCell: {
display: 'flex',
flexDirection: 'row',
},
tableCellContent: {
flexGrow: 1,
alignSelf: 'center',
},
tableCellStatus: {
height: '100%',
alignSelf: 'center',
},
kbd: {
fontFamily: 'sans-serif',
border: '1px solid',
borderRadius: 4,
backgroundColor: theme.raisedBackgroundColor,
padding: 2,
paddingLeft: 6,
paddingRight: 6,
},
disabled: {
color: theme.colorFaded,
fontStyle: 'italic',
},
inlineButton: Object.assign(Object.assign({}, theme.buttonStyle), { marginLeft: 12 }),
warning: Object.assign(Object.assign({}, theme.textStyle), { backgroundColor: theme.warningBackgroundColor, paddingLeft: 16, paddingRight: 16, paddingTop: 2, paddingBottom: 2 }),
};
});
}
exports.default = styles;
// # sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFNUMsU0FBd0IsTUFBTSxDQUFDLE9BQWU7SUFDN0MsT0FBTyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7UUFDL0QsT0FBTztZQUNOLFNBQVMsa0NBQ0wsS0FBSyxDQUFDLGNBQWMsS0FDdkIsT0FBTyxFQUFFLEVBQUUsR0FDWDtZQUNELGdCQUFnQixFQUFFO2dCQUNqQixPQUFPLEVBQUUsTUFBTTtnQkFDZixhQUFhLEVBQUUsS0FBSzthQUNwQjtZQUNELGlCQUFpQixFQUFFO2dCQUNsQixPQUFPLEVBQUUsQ0FBQztnQkFDVixRQUFRLEVBQUUsQ0FBQzthQUNYO1lBQ0QsV0FBVyxrQ0FDUCxLQUFLLENBQUMsVUFBVSxLQUNuQixRQUFRLEVBQUUsQ0FBQyxFQUNYLFNBQVMsRUFBRSxFQUFFLEVBQ2IsU0FBUyxFQUFFLFFBQVEsR0FDbkI7WUFDRCxhQUFhLGtDQUNULEtBQUssQ0FBQyxVQUFVLEtBQ25CLFNBQVMsRUFBRSxFQUFFLEdBQ2I7WUFDRCxLQUFLLGtDQUNELEtBQUssQ0FBQyxTQUFTLEtBQ2xCLFNBQVMsRUFBRSxRQUFRLEVBQ25CLFdBQVcsRUFBRSxFQUFFLEdBQ2Y7WUFDRCxLQUFLLGtDQUNELEtBQUssQ0FBQyxjQUFjLEtBQ3ZCLFNBQVMsRUFBRSxFQUFFLEVBQ2IsUUFBUSxFQUFFLE1BQU0sRUFDaEIsS0FBSyxFQUFFLE1BQU0sR0FDYjtZQUNELG1CQUFtQixrQ0FDZixLQUFLLENBQUMsU0FBUyxLQUNsQixLQUFLLEVBQUUsS0FBSyxHQUNaO1lBQ0Qsa0JBQWtCLGtDQUNkLEtBQUssQ0FBQyxTQUFTLEtBQ2xCLEtBQUssRUFBRSxNQUFNLEdBQ2I7WUFDRCxTQUFTLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsYUFBYSxFQUFFLEtBQUs7YUFDcEI7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDakIsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsU0FBUyxFQUFFLFFBQVE7YUFDbkI7WUFDRCxlQUFlLEVBQUU7Z0JBQ2hCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxRQUFRO2FBQ25CO1lBQ0QsR0FBRyxFQUFFO2dCQUNKLFVBQVUsRUFBRSxZQUFZO2dCQUN4QixNQUFNLEVBQUUsV0FBVztnQkFDbkIsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsZUFBZSxFQUFFLEtBQUssQ0FBQyxxQkFBcUI7Z0JBQzVDLE9BQU8sRUFBRSxDQUFDO2dCQUNWLFdBQVcsRUFBRSxDQUFDO2dCQUNkLFlBQVksRUFBRSxDQUFDO2FBQ2Y7WUFDRCxRQUFRLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUN2QixTQUFTLEVBQUUsUUFBUTthQUNuQjtZQUNELFlBQVksa0NBQ1IsS0FBSyxDQUFDLFdBQVcsS0FDcEIsVUFBVSxFQUFFLEVBQUUsR0FDZDtZQUNELE9BQU8sa0NBQ0gsS0FBSyxDQUFDLFNBQVMsS0FDbEIsZUFBZSxFQUFFLEtBQUssQ0FBQyxzQkFBc0IsRUFDN0MsV0FBVyxFQUFFLEVBQUUsRUFDZixZQUFZLEVBQUUsRUFBRSxFQUNoQixVQUFVLEVBQUUsQ0FBQyxFQUNiLGFBQWEsRUFBRSxDQUFDLEdBQ2hCO1NBQ0QsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQW5GRCx5QkFtRkMifQ==

View File

@ -0,0 +1,33 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const CommandService_1 = require('../../../lib/services/CommandService');
const { _ } = require('lib/locale');
const { shim } = require('lib/shim');
const commandService = CommandService_1.default.instance();
const getLabel = (commandName) => {
if (commandService.exists(commandName)) { return commandService.label(commandName); }
// Some commands are not registered in CommandService at the moment
// Following hard-coded labels are used as a workaround
switch (commandName) {
case 'quit':
return _('Quit');
case 'insertTemplate':
return _('Insert template');
case 'zoomActualSize':
return _('Actual Size');
case 'gotoAnything':
return _('Goto Anything...');
case 'help':
return _('Website and documentation');
case 'hideApp':
return _('Hide Joplin');
case 'closeWindow':
return _('Close Window');
case 'config':
return shim.isMac() ? _('Preferences') : _('Options');
default:
throw new Error(`Command: ${commandName} is unknown`);
}
};
exports.default = getLabel;
// # sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0TGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnZXRMYWJlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlFQUFrRTtBQUVsRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFckMsTUFBTSxjQUFjLEdBQUcsd0JBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUVqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRTtJQUN4QyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpGLG1FQUFtRTtJQUNuRSx1REFBdUQ7SUFFdkQsUUFBUSxXQUFXLEVBQUU7UUFDckIsS0FBSyxNQUFNO1lBQ1YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEIsS0FBSyxnQkFBZ0I7WUFDcEIsT0FBTyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3QixLQUFLLGdCQUFnQjtZQUNwQixPQUFPLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QixLQUFLLGNBQWM7WUFDbEIsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5QixLQUFLLE1BQU07WUFDVixPQUFPLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssU0FBUztZQUNiLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pCLEtBQUssYUFBYTtZQUNqQixPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQixLQUFLLFFBQVE7WUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQ7WUFDQyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksV0FBVyxhQUFhLENBQUMsQ0FBQztLQUN0RDtBQUNGLENBQUMsQ0FBQztBQUVGLGtCQUFlLFFBQVEsQ0FBQyJ9

View File

@ -0,0 +1,25 @@
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const react_1 = require('react');
const KeymapService_1 = require('../../../lib/services/KeymapService');
const keymapService = KeymapService_1.default.instance();
const useCommandStatus = () => {
const [status, setStatus] = react_1.useState(() => keymapService.getCommandNames().reduce((accumulator, command) => {
accumulator[command] = false;
return accumulator;
}, {}));
const disableStatus = (commandName) => setStatus(prevStatus => (Object.assign(Object.assign({}, prevStatus), { [commandName]: false })));
const enableStatus = (commandName) => setStatus(prevStatus => {
// Falsify all the commands; Only one command should be truthy at any given time
const newStatus = Object.keys(prevStatus).reduce((accumulator, command) => {
accumulator[command] = false;
return accumulator;
}, {});
// Make the appropriate command truthful
newStatus[commandName] = true;
return newStatus;
});
return [status, enableStatus, disableStatus];
};
exports.default = useCommandStatus;
// # sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlQ29tbWFuZFN0YXR1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInVzZUNvbW1hbmRTdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBaUM7QUFDakMsdUVBQWdFO0FBRWhFLE1BQU0sYUFBYSxHQUFHLHVCQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7QUFNL0MsTUFBTSxnQkFBZ0IsR0FBRyxHQUFrRixFQUFFO0lBQzVHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLEdBQUcsZ0JBQVEsQ0FBZ0IsR0FBRyxFQUFFLENBQ3hELGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUEwQixFQUFFLE9BQWUsRUFBRSxFQUFFO1FBQ3RGLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0IsT0FBTyxXQUFXLENBQUM7SUFDcEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNOLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLFdBQW1CLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlDQUFNLFVBQVUsS0FBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssSUFBRyxDQUFDLENBQUM7SUFDbEgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDcEUsZ0ZBQWdGO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBMEIsRUFBRSxPQUFlLEVBQUUsRUFBRTtZQUNoRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzdCLE9BQU8sV0FBVyxDQUFDO1FBQ3BCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVQLHdDQUF3QztRQUN4QyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzlCLE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBRUYsa0JBQWUsZ0JBQWdCLENBQUMifQ==

View File

@ -0,0 +1,68 @@
'use strict';
const __awaiter = (this && this.__awaiter) || function(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function(resolve) { resolve(value); }); }
return new (P || (P = Promise))(function(resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator['throw'](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, '__esModule', { value: true });
const react_1 = require('react');
const KeymapService_1 = require('../../../lib/services/KeymapService');
const keymapService = KeymapService_1.default.instance();
// This custom hook provides a synchronized snapshot of the keymap residing at KeymapService
// All the logic regarding altering and interacting with the keymap is isolated from the components
const useKeymap = () => {
const [keymapItems, setKeymapItems] = react_1.useState(() => keymapService.getKeymapItems());
const [keymapError, setKeymapError] = react_1.useState(null);
const setAccelerator = (commandName, accelerator) => {
setKeymapItems(prevKeymap => {
const newKeymap = [...prevKeymap];
newKeymap.find(item => item.command === commandName).accelerator = accelerator || null /* Disabled */;
return newKeymap;
});
};
const resetAccelerator = (commandName) => {
const defaultAccelerator = keymapService.getDefaultAccelerator(commandName);
setKeymapItems(prevKeymap => {
const newKeymap = [...prevKeymap];
newKeymap.find(item => item.command === commandName).accelerator = defaultAccelerator;
return newKeymap;
});
};
const overrideKeymapItems = (customKeymapItems) => {
const oldKeymapItems = [...customKeymapItems];
keymapService.initialize(); // Start with a fresh keymap
try {
// First, try to update the in-memory keymap of KeymapService
// This function will throw if there are any issues with the new custom keymap
keymapService.overrideKeymap(customKeymapItems);
// Then, update the state with the data from KeymapService
// Side-effect: Changes will also be saved to the disk
setKeymapItems(keymapService.getKeymapItems());
} catch (err) {
// oldKeymapItems includes even the unchanged keymap items
// However, it is not an issue because the logic accounts for such scenarios
keymapService.overrideKeymap(oldKeymapItems);
throw err;
}
};
const exportCustomKeymap = (customKeymapPath) => __awaiter(void 0, void 0, void 0, function* () {
// KeymapService is already synchronized automatically with the in-state keymap
yield keymapService.saveCustomKeymap(customKeymapPath);
});
react_1.useEffect(() => {
try {
keymapService.overrideKeymap(keymapItems);
keymapService.saveCustomKeymap();
setKeymapError(null);
} catch (err) {
setKeymapError(err);
}
}, [keymapItems]);
return [keymapItems, keymapError, overrideKeymapItems, exportCustomKeymap, setAccelerator, resetAccelerator];
};
exports.default = useKeymap;
// # sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlS2V5bWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidXNlS2V5bWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsaUNBQTRDO0FBQzVDLHVFQUFnRjtBQUVoRixNQUFNLGFBQWEsR0FBRyx1QkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBRS9DLDRGQUE0RjtBQUM1RixtR0FBbUc7QUFFbkcsTUFBTSxTQUFTLEdBQUcsR0FPaEIsRUFBRTtJQUNILE1BQU0sQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLEdBQUcsZ0JBQVEsQ0FBZSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNuRyxNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLGdCQUFRLENBQVEsSUFBSSxDQUFDLENBQUM7SUFFNUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFdBQW1CLEVBQUUsRUFBRTtRQUNuRSxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDM0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBRWxDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN0RyxPQUFPLFNBQVMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUFtQixFQUFFLEVBQUU7UUFDaEQsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzNCLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztZQUVsQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxXQUFXLEdBQUcsa0JBQWtCLENBQUM7WUFDdEYsT0FBTyxTQUFTLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsaUJBQStCLEVBQUUsRUFBRTtRQUMvRCxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyw0QkFBNEI7UUFFeEQsSUFBSTtZQUNILDZEQUE2RDtZQUM3RCw4RUFBOEU7WUFDOUUsYUFBYSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELDBEQUEwRDtZQUMxRCxzREFBc0Q7WUFDdEQsY0FBYyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1NBQy9DO1FBQUMsT0FBTyxHQUFHLEVBQUU7WUFDYiwwREFBMEQ7WUFDMUQsNEVBQTRFO1lBQzVFLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDN0MsTUFBTSxHQUFHLENBQUM7U0FDVjtJQUNGLENBQUMsQ0FBQztJQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBTyxnQkFBd0IsRUFBRSxFQUFFO1FBQzdELCtFQUErRTtRQUMvRSxNQUFNLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQSxDQUFDO0lBRUYsaUJBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDZCxJQUFJO1lBQ0gsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNqQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNiLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNGLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFbEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDOUcsQ0FBQyxDQUFDO0FBRUYsa0JBQWUsU0FBUyxDQUFDIn0=

View File

@ -63,7 +63,7 @@ function useStyle() {
function useRestartOnDone(upgradeResult:SyncTargetUpgradeResult) {
useEffect(function() {
if (upgradeResult.done) {
if (upgradeResult.done && !upgradeResult.error) {
bridge().restart();
}
}, [upgradeResult.done]);

View File

@ -1,6 +1,6 @@
{
"name": "Joplin",
"version": "1.0.235",
"version": "1.0.237",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "Joplin",
"version": "1.0.235",
"version": "1.0.237",
"description": "Joplin for Desktop",
"main": "main.js",
"scripts": {

View File

@ -20,15 +20,15 @@ Three types of applications are available: for the **desktop** (Windows, macOS a
Operating System | Download | Alternative
-----------------|--------|-------------------
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-Setup-1.0.227.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a> | Or get the <a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/JoplinPortable.exe'>Portable version</a><br><br>The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-1.0.227.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a> | You can also use Homebrew (unsupported): `brew cask install joplin`
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-1.0.227.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a> | An Arch Linux package (unsupported) [is also available](#terminal-application).<br><br>If it works with your distribution (it has been tested on Ubuntu, Fedora, and Mint; the desktop environments supported are GNOME, KDE, Xfce, MATE, LXQT, LXDE, Unity, Cinnamon, Deepin and Pantheon), the recommended way is to use this script as it will handle the desktop icon too:<br><br> `wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh \| bash`
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-Setup-1.0.233.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a> | Or get the <a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/JoplinPortable.exe'>Portable version</a><br><br>The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-1.0.233.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a> | You can also use Homebrew (unsupported): `brew cask install joplin`
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-1.0.233.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a> | An Arch Linux package (unsupported) [is also available](#terminal-application).<br><br>If it works with your distribution (it has been tested on Ubuntu, Fedora, and Mint; the desktop environments supported are GNOME, KDE, Xfce, MATE, LXQT, LXDE, Unity, Cinnamon, Deepin and Pantheon), the recommended way is to use this script as it will handle the desktop icon too:<br><br> `wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh \| bash`
## Mobile applications
Operating System | Download | Alt. Download
-----------------|----------|----------------
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.337/joplin-v1.0.337.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.337/joplin-v1.0.337-32bit.apk)
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.338/joplin-v1.0.338.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v1.0.338/joplin-v1.0.338-32bit.apk)
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://joplinapp.org/images/BadgeIOS.png'/></a> | -
## Terminal application

View File

@ -125,8 +125,8 @@ android {
applicationId "net.cozic.joplin"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2097573
versionName "1.0.337"
versionCode 2097574
versionName "1.0.338"
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}

View File

@ -327,22 +327,15 @@ class OneDriveApi {
}
async execAccountPropertiesRequest() {
const response = await shim.fetch('https://graph.microsoft.com/v1.0/me/drive', {
method: 'GET',
headers: {
'Authorization': this.token(),
},
});
if (!response.ok) {
const text = await response.text();
throw new Error(`Could not retrieve account details (drive ID, Account type): ${response.status}: ${response.statusText}: ${text}`);
} else {
try {
const response = await this.exec('GET','https://graph.microsoft.com/v1.0/me/drive');
const data = await response.json();
const accountProperties = { accountType: data.driveType, driveId: data.id };
return accountProperties;
} catch (error) {
throw new Error(`Could not retrieve account details (drive ID, Account type. Error code: ${error.code}, Error message: ${error.message}`);
}
}
async execJson(method, path, query, data) {

View File

@ -15,10 +15,14 @@ export default function useSyncTargetUpgrade():SyncTargetUpgradeResult {
});
async function upgradeSyncTarget() {
reg.logger().info('useSyncTargetUpgrade: Starting process...');
let error = null;
try {
reg.logger().info('useSyncTargetUpgrade: Acquire synchronizer...');
const synchronizer = await reg.syncTarget().synchronizer();
reg.logger().info('useSyncTargetUpgrade: Create migration handler...');
const migrationHandler = new MigrationHandler(
synchronizer.api(),
synchronizer.lockHandler(),
@ -26,11 +30,14 @@ export default function useSyncTargetUpgrade():SyncTargetUpgradeResult {
Setting.value('clientId')
);
reg.logger().info('useSyncTargetUpgrade: Start upgrade...');
await migrationHandler.upgrade();
} catch (e) {
error = e;
}
reg.logger().info('useSyncTargetUpgrade: Error:', error);
if (!error) {
Setting.setValue('sync.upgradeState', Setting.SYNC_UPGRADE_STATE_IDLE);
await Setting.saveAll();

View File

@ -351,9 +351,85 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
</ul>
</div>
<h1>Joplin changelog<a name="joplin-changelog" href="#joplin-changelog" class="heading-anchor">🔗</a></h1>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.231">v1.0.231</a> - 2020-07-24T17:21:53Z<a name="v1-0-231-https-github-com-laurent22-joplin-releases-tag-v1-0-231-2020-07-24t17-21-53z" href="#v1-0-231-https-github-com-laurent22-joplin-releases-tag-v1-0-231-2020-07-24t17-21-53z" class="heading-anchor">🔗</a></h2>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.235">v1.0.235</a> - 2020-08-18T22:08:01Z<a name="v1-0-235-https-github-com-laurent22-joplin-releases-tag-v1-0-235-2020-08-18t22-08-01z" href="#v1-0-235-https-github-com-laurent22-joplin-releases-tag-v1-0-235-2020-08-18t22-08-01z" class="heading-anchor">🔗</a></h2>
<p>Important: This pre-release will ask you to upgrade your sync target and, once it is done, only the latest clients will be able to sync with this sync target. Currently that includes the desktop app (v1.0.234+) and Android app (v1.0.337+). It means if you are using these two clients you'll be fine. However if you are using the iOS or CLI clients you might want to wait till these clients are updated. Any issue with the sync target upgrade, please post on the forum.</p>
<p>This version also includes an update to the search engine and as a result starting the app the first might be SLOW, as the search engine indexes all your notes. It might take from a few seconds to several minutes depending on how large your note collection is</p>
<ul>
<li>New: Add mechanism to lock and upgrade sync targets (<a href="https://github.com/laurent22/joplin/issues/3524">#3524</a>)</li>
<li>New: Add version info to error screen</li>
<li>New: Added KeymapService to manage keyboard shortcuts (<a href="https://github.com/laurent22/joplin/issues/3252">#3252</a> by Anjula Karunarathne)</li>
<li>New: Added attach file to menu bar (<a href="https://github.com/laurent22/joplin/issues/3540">#3540</a> by <a href="https://github.com/R3dError">@R3dError</a>)</li>
<li>New: Add search filters (<a href="https://github.com/laurent22/joplin/issues/3213">#3213</a>) (<a href="https://github.com/laurent22/joplin/issues/1877">#1877</a> by Naveen M V)</li>
<li>Security: Apply latest package security updates</li>
<li>Improved: Add support for OneDrive for Business (<a href="https://github.com/laurent22/joplin/issues/3433">#3433</a>) (<a href="https://github.com/laurent22/joplin/issues/1266">#1266</a> by <a href="https://github.com/jonath92">@jonath92</a>)</li>
<li>Improved: Codemirror: clean up list indent code (<a href="https://github.com/laurent22/joplin/issues/3581">#3581</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Enable CodeMirror keybindings (<a href="https://github.com/laurent22/joplin/issues/3545">#3545</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Fix AppImage Icon (<a href="https://github.com/laurent22/joplin/issues/3570">#3570</a>) (<a href="https://github.com/laurent22/joplin/issues/3529">#3529</a> by <a href="https://github.com/Jesssullivan">@Jesssullivan</a>)</li>
<li>Improved: Hide completed to-dos in GotoAnything (<a href="https://github.com/laurent22/joplin/issues/3580">#3580</a>)</li>
<li>Improved: Implement scroll-past-end on CodeMirror editor (<a href="https://github.com/laurent22/joplin/issues/3589">#3589</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Show full folder name in mouse-over pop-up text (<a href="https://github.com/laurent22/joplin/issues/3590">#3590</a>) (<a href="https://github.com/laurent22/joplin/issues/3569">#3569</a> by Allan Jacquet-Cretides)</li>
<li>Improved: Toggle Editor rather than setting split mode on search (<a href="https://github.com/laurent22/joplin/issues/3561">#3561</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Fixed copy, cut and paste in Rich Text editor (<a href="https://github.com/laurent22/joplin/issues/3565">#3565</a>)</li>
<li>Fixed: Fixed scrolling issue when editing while searching in CodeMirror (<a href="https://github.com/laurent22/joplin/issues/3593">#3593</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Fixed sync fetching issue (<a href="https://github.com/laurent22/joplin/issues/3599">#3599</a>) (<a href="https://github.com/laurent22/joplin/issues/3591">#3591</a> by <a href="https://github.com/alexchee">@alexchee</a>)</li>
<li>Fixed: Fixed vim mode issue where status bar was not visible (<a href="https://github.com/laurent22/joplin/issues/3606">#3606</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Modify the CodeMirror linter plugin to fix katex (<a href="https://github.com/laurent22/joplin/issues/3582">#3582</a>) (<a href="https://github.com/laurent22/joplin/issues/3560">#3560</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.234">v1.0.234</a> - 2020-08-17T23:13:02Z<a name="v1-0-234-https-github-com-laurent22-joplin-releases-tag-v1-0-234-2020-08-17t23-13-02z" href="#v1-0-234-https-github-com-laurent22-joplin-releases-tag-v1-0-234-2020-08-17t23-13-02z" class="heading-anchor">🔗</a></h2>
<p>Important: This pre-release will ask you to upgrade your sync target and, once it is done, only the latest clients will be able to sync with this sync target. Currently that includes the desktop app (v1.0.234+) and Android app (v1.0.337+). It means if you are using these two clients you'll be fine. However if you are using the iOS or CLI clients you might want to wait till these clients are updated. Any issue with the sync target upgrade, please post on the forum.</p>
<p>This version also includes an update to the search engine and as a result starting the app the first might be SLOW, as the search engine indexes all your notes. It might take from a few seconds to several minutes depending on how large your note collection is.</p>
<ul>
<li>New: Add mechanism to lock and upgrade sync targets (<a href="https://github.com/laurent22/joplin/issues/3524">#3524</a>)</li>
<li>New: Add support for media player for video and audio files</li>
<li>New: Add version info to error screen</li>
<li>New: Added KeymapService to manage keyboard shortcuts (<a href="https://github.com/laurent22/joplin/issues/3252">#3252</a> by Anjula Karunarathne)</li>
<li>New: Added attach file to menu bar (<a href="https://github.com/laurent22/joplin/issues/3540">#3540</a> by <a href="https://github.com/R3dError">@R3dError</a>)</li>
<li>New: Add search filters (<a href="https://github.com/laurent22/joplin/issues/3213">#3213</a>) (<a href="https://github.com/laurent22/joplin/issues/1877">#1877</a> by Naveen M V)</li>
<li>Security: Apply latest package security updates</li>
<li>Improved: Add support for OneDrive for Business (<a href="https://github.com/laurent22/joplin/issues/3433">#3433</a>) (<a href="https://github.com/laurent22/joplin/issues/1266">#1266</a> by <a href="https://github.com/jonath92">@jonath92</a>)</li>
<li>Improved: Codemirror: clean up list indent code (<a href="https://github.com/laurent22/joplin/issues/3581">#3581</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Enable CodeMirror keybindings (<a href="https://github.com/laurent22/joplin/issues/3545">#3545</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Fix AppImage Icon (<a href="https://github.com/laurent22/joplin/issues/3570">#3570</a>) (<a href="https://github.com/laurent22/joplin/issues/3529">#3529</a> by <a href="https://github.com/Jesssullivan">@Jesssullivan</a>)</li>
<li>Improved: Hide completed to-dos in GotoAnything (<a href="https://github.com/laurent22/joplin/issues/3580">#3580</a>)</li>
<li>Improved: Implement scroll-past-end on CodeMirror editor (<a href="https://github.com/laurent22/joplin/issues/3589">#3589</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Show full folder name in mouse-over pop-up text (<a href="https://github.com/laurent22/joplin/issues/3590">#3590</a>) (<a href="https://github.com/laurent22/joplin/issues/3569">#3569</a> by Allan Jacquet-Cretides)</li>
<li>Improved: Toggle Editor rather than setting split mode on search (<a href="https://github.com/laurent22/joplin/issues/3561">#3561</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Fixed copy, cut and paste in Rich Text editor (<a href="https://github.com/laurent22/joplin/issues/3565">#3565</a>)</li>
<li>Fixed: Fixed scrolling issue when editing while searching in CodeMirror (<a href="https://github.com/laurent22/joplin/issues/3593">#3593</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Fixed sync fetching issue (<a href="https://github.com/laurent22/joplin/issues/3599">#3599</a>) (<a href="https://github.com/laurent22/joplin/issues/3591">#3591</a> by <a href="https://github.com/alexchee">@alexchee</a>)</li>
<li>Fixed: Fixed vim mode issue where status bar was not visible (<a href="https://github.com/laurent22/joplin/issues/3606">#3606</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Modify the CodeMirror linter plugin to fix katex (<a href="https://github.com/laurent22/joplin/issues/3582">#3582</a>) (<a href="https://github.com/laurent22/joplin/issues/3560">#3560</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.233">v1.0.233</a> - 2020-08-01T14:51:15Z<a name="v1-0-233-https-github-com-laurent22-joplin-releases-tag-v1-0-233-2020-08-01t14-51-15z" href="#v1-0-233-https-github-com-laurent22-joplin-releases-tag-v1-0-233-2020-08-01t14-51-15z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for AWS S3 synchronisation (Beta) (<a href="https://github.com/laurent22/joplin/issues/2815">#2815</a> by <a href="https://github.com/alexchee">@alexchee</a>)</li>
<li>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). Vulnerability found by <a href="mailto:ben@mayhem.sg">Benjamin Harris</a>.</li>
<li>Improved: Improved GotoAnything speed and made it safer</li>
<li>Improved: Enable searching in editor rather than the viewer for CodeMirror (<a href="https://github.com/laurent22/joplin/issues/3360">#3360</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Enforce that whitespace check for unindent checks the begining of a (<a href="https://github.com/laurent22/joplin/issues/3515">#3515</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Load more CodeMirror modes for syntax highlighting (<a href="https://github.com/laurent22/joplin/issues/3401">#3401</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Split Codemirror setOptions into different effects (<a href="https://github.com/laurent22/joplin/issues/3522">#3522</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Fix filename when exporting notebook as Markdown (<a href="https://github.com/laurent22/joplin/issues/3473">#3473</a>)</li>
<li>Fixed: Fixed alarms on macOS</li>
<li>Fixed: Improve Markdown rendering in CodeMirror, in particular for math expressions (<a href="https://github.com/laurent22/joplin/issues/3448">#3448</a>) (<a href="https://github.com/laurent22/joplin/issues/3440">#3440</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Crash when applying tags to multiple notes from within another tag (<a href="https://github.com/laurent22/joplin/issues/3481">#3481</a>)</li>
<li>Fixed: Fixed regression when moving note to notebook from menu (<a href="https://github.com/laurent22/joplin/issues/3482">#3482</a>)</li>
<li>Fixed: Editor window was no longer being resized with the main window (<a href="https://github.com/laurent22/joplin/issues/3503">#3503</a>)</li>
<li>Fixed: Fixed attachments being out of order when importing Enex file</li>
<li>Fixed: Fixed save issue in Rich Text editor when making a change to a note and quickly switching to a different notebook</li>
<li>Fixed: Fixed style caching (<a href="https://github.com/laurent22/joplin/issues/3449">#3449</a>)</li>
<li>Fixed: In some cases, changes made to an attachment would not be saved. Also added banner to show that an attachment is being edited (<a href="https://github.com/laurent22/joplin/issues/3407">#3407</a>)</li>
<li>Fixed: Note links would be broken after saving a note in Rich Text editor (<a href="https://github.com/laurent22/joplin/issues/3510">#3510</a>)</li>
<li>Fixed: Regression: Fix sort tags alphabetically in side-menu (<a href="https://github.com/laurent22/joplin/issues/3489">#3489</a> by Vaidotas Šimkus)</li>
<li>Fixed: Regression: Fixed adding a new sub-notebook to a notebook</li>
<li>Fixed: Revealing file in Windows did not work (<a href="https://github.com/laurent22/joplin/issues/3366">#3366</a>)</li>
<li>Fixed: Undoing changes multiple time on an existing note could result in a blank note (<a href="https://github.com/laurent22/joplin/issues/3534">#3534</a>)</li>
<li>Fixed: Fixed potential crash when notebook does not have a title</li>
<li>Fixed: Fixed toolbar button state when going from setting screen to main screen</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.232">v1.0.232</a> - 2020-07-28T22:34:40Z<a name="v1-0-232-https-github-com-laurent22-joplin-releases-tag-v1-0-232-2020-07-28t22-34-40z" href="#v1-0-232-https-github-com-laurent22-joplin-releases-tag-v1-0-232-2020-07-28t22-34-40z" class="heading-anchor">🔗</a></h2>
<p>This release is to remove the hierarchical/nested tags feature for now, as it has a performance issue.</p>
<ul>
<li>New: Added support for hierarchical/nested tags (<a href="https://github.com/laurent22/joplin/issues/2572">#2572</a> by Vaidotas Šimkus)</li>
<li>New: Add support for AWS S3 synchronisation (Beta) (<a href="https://github.com/laurent22/joplin/issues/2815">#2815</a> by <a href="https://github.com/alexchee">@alexchee</a>)</li>
<li>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). Vulnerability found by <a href="mailto:ben@mayhem.sg">Benjamin Harris</a>.</li>
<li>Improved: Improved GotoAnything speed and made it safer</li>
@ -378,16 +454,6 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
<li>Fixed: Revealing file in Windows did not work (<a href="https://github.com/laurent22/joplin/issues/3366">#3366</a>)</li>
<li>Fixed: Undoing changes multiple time on an existing note could result in a blank note (<a href="https://github.com/laurent22/joplin/issues/3534">#3534</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.229">v1.0.229</a> - 2020-07-14T15:15:18Z<a name="v1-0-229-https-github-com-laurent22-joplin-releases-tag-v1-0-229-2020-07-14t15-15-18z" href="#v1-0-229-https-github-com-laurent22-joplin-releases-tag-v1-0-229-2020-07-14t15-15-18z" class="heading-anchor">🔗</a></h2>
<p>Fixed a few regressions related to the recent command refactoring.</p>
<ul>
<li>New: Added support for hierarchical/nested tags (<a href="https://github.com/laurent22/joplin/issues/2572">#2572</a> by Vaidotas Šimkus)</li>
<li>Fixed: Fix filename when exporting notebook as Markdown (<a href="https://github.com/laurent22/joplin/issues/3473">#3473</a>)</li>
<li>Fixed: Fixed alarms on macOS</li>
<li>Fixed: Improve Markdown rendering in CodeMirror, in particular for math expressions (<a href="https://github.com/laurent22/joplin/issues/3448">#3448</a>) (<a href="https://github.com/laurent22/joplin/issues/3440">#3440</a> by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Fixed: Crash when applying tags to multiple notes from within another tag (<a href="https://github.com/laurent22/joplin/issues/3481">#3481</a>)</li>
<li>Fixed: Fixed regression when moving note to notebook from menu (<a href="https://github.com/laurent22/joplin/issues/3482">#3482</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.227">v1.0.227</a> - 2020-07-07T20:44:54Z<a name="v1-0-227-https-github-com-laurent22-joplin-releases-tag-v1-0-227-2020-07-07t20-44-54z" href="#v1-0-227-https-github-com-laurent22-joplin-releases-tag-v1-0-227-2020-07-07t20-44-54z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add approximate reading time to note statistics (<a href="https://github.com/laurent22/joplin/issues/3373">#3373</a> by <a href="https://github.com/cadolphs">@cadolphs</a>)</li>
@ -1517,7 +1583,7 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.119">v1.0.119</a> - 2018-12-18T12:40:22Z<a name="v1-0-119-https-github-com-laurent22-joplin-releases-tag-v1-0-119-2018-12-18t12-40-22z" href="#v1-0-119-https-github-com-laurent22-joplin-releases-tag-v1-0-119-2018-12-18t12-40-22z" class="heading-anchor">🔗</a></h2>
<p>Important: This release might be slow on startup due to the need to index all the notes, especially if you have many of them with lots of content. The best is simply to wait for it even if it takes several minutes. This is just a one off and afterwards startup time will be the same as before.</p>
<ul>
<li>New: Fast full text search engine. Works with multiple terms, support for prefixes, can restrict search to either note title or body. See <a href="https://joplinapp.org/#searching">https://joplinapp.org/#searching</a> for more info.</li>
<li>New: Fast full text search engine. Works with multiple terms, support for prefixes, can restrict search to either note title or body. See <a href="https://joplin.cozic.net/#searching">https://joplin.cozic.net/#searching</a> for more info.</li>
<li>New: Search within current note (Ctrl+F).</li>
<li>New: Add separate editor font size option (<a href="https://github.com/laurent22/joplin/issues/1027">#1027</a>)</li>
<li>Changed: Changed global search shortcut to F6.</li>
@ -1530,7 +1596,7 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.118">v1.0.118</a> - 2019-01-11T08:34:13Z<a name="v1-0-118-https-github-com-laurent22-joplin-releases-tag-v1-0-118-2019-01-11t08-34-13z" href="#v1-0-118-https-github-com-laurent22-joplin-releases-tag-v1-0-118-2019-01-11t08-34-13z" class="heading-anchor">🔗</a></h2>
<p>Important: This release might be slow on startup due to the need to index all the notes, especially if you have many of them with lots of content. The best is simply to wait for it even if it takes several minutes. This is just a one off and afterwards startup time will be the same as before.</p>
<ul>
<li>New: Fast full text search engine. Works with multiple terms, support for prefixes, can restrict search to either note title or body. See <a href="https://joplinapp.org/#searching">https://joplinapp.org/#searching</a> for more info.</li>
<li>New: Fast full text search engine. Works with multiple terms, support for prefixes, can restrict search to either note title or body. See <a href="https://joplin.cozic.net/#searching">https://joplin.cozic.net/#searching</a> for more info.</li>
<li>New: Search within current note (Ctrl+F).</li>
<li>New: Add separate editor font size option (<a href="https://github.com/laurent22/joplin/issues/1027">#1027</a>)</li>
<li>Changed: Changed global search shortcut to F6.</li>
@ -1731,7 +1797,7 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.93">v1.0.93</a> - 2018-05-14T11:36:01Z<a name="v1-0-93-https-github-com-laurent22-joplin-releases-tag-v1-0-93-2018-05-14t11-36-01z" href="#v1-0-93-https-github-com-laurent22-joplin-releases-tag-v1-0-93-2018-05-14t11-36-01z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: A portable version is now available. To install it simply copy the file &quot;JoplinPortable.exe&quot; to your USB device. See the documentation for more information - <a href="https://joplinapp.org/#desktop-applications">https://joplinapp.org/#desktop-applications</a></li>
<li>New: A portable version is now available. To install it simply copy the file &quot;JoplinPortable.exe&quot; to your USB device. See the documentation for more information - <a href="https://joplin.cozic.net/#desktop-applications">https://joplin.cozic.net/#desktop-applications</a></li>
<li>Improved: Made import of ENEX files more robust and accurate</li>
<li>Improved: Auto-update process should be more reliable.</li>
<li>Fixed: Made sync-after-save interval longer to made synchronisations less frequent.</li>
@ -1748,7 +1814,7 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog.md
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.89">v1.0.89</a> - 2018-05-09T13:05:05Z<a name="v1-0-89-https-github-com-laurent22-joplin-releases-tag-v1-0-89-2018-05-09t13-05-05z" href="#v1-0-89-https-github-com-laurent22-joplin-releases-tag-v1-0-89-2018-05-09t13-05-05z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Resolves <a href="https://github.com/laurent22/joplin/issues/122">#122</a>: Added support for sub-notebooks. Please see doc for more info: <a href="https://joplinapp.org/#sub-notebooks">https://joplinapp.org/#sub-notebooks</a></li>
<li>New: Resolves <a href="https://github.com/laurent22/joplin/issues/122">#122</a>: Added support for sub-notebooks. Please see doc for more info: <a href="https://joplin.cozic.net/#sub-notebooks">https://joplin.cozic.net/#sub-notebooks</a></li>
<li>Improved: Export/Import links to notes</li>
<li>Fixes <a href="https://github.com/laurent22/joplin/issues/480">#480</a>: Ignore invalid flag automatically passed by macOS</li>
<li>Fixes <a href="https://github.com/laurent22/joplin/issues/61">#61</a>: Handle path that ends with slash for file system sync</li>

View File

@ -351,6 +351,13 @@ https://github.com/laurent22/joplin/blob/master/readme/changelog_cli.md
</ul>
</div>
<h1>Joplin terminal app changelog<a name="joplin-terminal-app-changelog" href="#joplin-terminal-app-changelog" class="heading-anchor">🔗</a></h1>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.166">cli-v1.0.166</a> - 2020-08-02T14:03:26Z<a name="cli-v1-0-166-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-166-2020-08-02t14-03-26z" href="#cli-v1-0-166-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-166-2020-08-02t14-03-26z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for AWS S3 synchronisation (Beta) (#2815 by <a href="https://github.com/alexchee">@alexchee</a>)</li>
<li>Fixed: Desktop-only scripts were incorrectly being loaded in CLI server tool (#3548)</li>
<li>Fixed: Fix filename when exporting notebook as Markdown (#3473)</li>
<li>Fixed: Fixed attachments being out of order when importing Enex file</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.165">cli-v1.0.165</a> - 2020-07-10T18:51:42Z<a name="cli-v1-0-165-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-165-2020-07-10t18-51-42z" href="#cli-v1-0-165-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-165-2020-07-10t18-51-42z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Translation: Add bahasa indonesia (id_ID.po) (#3246 by <a href="https://github.com/ffadilaputra">@ffadilaputra</a>)</li>

View File

@ -371,17 +371,17 @@ https://github.com/laurent22/joplin/blob/master/README.md
<tbody>
<tr>
<td>Windows (32 and 64-bit)</td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-Setup-1.0.227.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a></td>
<td>Or get the <a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/JoplinPortable.exe'>Portable version</a><br><br>The <a href="https://en.wikipedia.org/wiki/Portable_application">portable application</a> allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called &quot;JoplinProfile&quot; next to the executable file.</td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-Setup-1.0.233.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a></td>
<td>Or get the <a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/JoplinPortable.exe'>Portable version</a><br><br>The <a href="https://en.wikipedia.org/wiki/Portable_application">portable application</a> allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called &quot;JoplinProfile&quot; next to the executable file.</td>
</tr>
<tr>
<td>macOS</td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-1.0.227.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a></td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-1.0.233.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a></td>
<td>You can also use Homebrew (unsupported): <code>brew cask install joplin</code></td>
</tr>
<tr>
<td>Linux</td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.227/Joplin-1.0.227.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a></td>
<td><a href='https://github.com/laurent22/joplin/releases/download/v1.0.233/Joplin-1.0.233.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a></td>
<td>An Arch Linux package (unsupported) <a href="#terminal-application">is also available</a>.<br><br>If it works with your distribution (it has been tested on Ubuntu, Fedora, and Mint; the desktop environments supported are GNOME, KDE, Xfce, MATE, LXQT, LXDE, Unity, Cinnamon, Deepin and Pantheon), the recommended way is to use this script as it will handle the desktop icon too:<br><br> <code>wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash</code></td>
</tr>
</tbody>
@ -399,7 +399,7 @@ https://github.com/laurent22/joplin/blob/master/README.md
<tr>
<td>Android</td>
<td><a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a></td>
<td>or download the APK file: <a href="https://github.com/laurent22/joplin-android/releases/download/android-v1.0.333/joplin-v1.0.333.apk">64-bit</a> <a href="https://github.com/laurent22/joplin-android/releases/download/android-v1.0.333/joplin-v1.0.333-32bit.apk">32-bit</a></td>
<td>or download the APK file: <a href="https://github.com/laurent22/joplin-android/releases/download/android-v1.0.336/joplin-v1.0.336.apk">64-bit</a> <a href="https://github.com/laurent22/joplin-android/releases/download/android-v1.0.336/joplin-v1.0.336-32bit.apk">32-bit</a></td>
</tr>
<tr>
<td>iOS</td>

View File

@ -361,15 +361,15 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tbody>
<tr>
<td>Total Windows downloads</td>
<td>914,303</td>
<td>960,363</td>
</tr>
<tr>
<td>Total macOs downloads</td>
<td>352,705</td>
<td>370,685</td>
</tr>
<tr>
<td>Total Linux downloads</td>
<td>256,195</td>
<td>267,570</td>
</tr>
<tr>
<td>Windows %</td>
@ -398,76 +398,92 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
</thead>
<tbody>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.231">v1.0.231</a></td>
<td>2020-07-24T17:21:53Z</td>
<td>23</td>
<td>10</td>
<td>9</td>
<td>42</td>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.235">v1.0.235</a></td>
<td>2020-08-18T22:08:01Z</td>
<td>302</td>
<td>66</td>
<td>55</td>
<td>423</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.229">v1.0.229</a></td>
<td>2020-07-14T15:15:18Z</td>
<td>829</td>
<td>323</td>
<td>452</td>
<td>1,604</td>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.234">v1.0.234</a></td>
<td>2020-08-17T23:13:02Z</td>
<td>288</td>
<td>76</td>
<td>71</td>
<td>435</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.233">v1.0.233</a></td>
<td>2020-08-01T14:51:15Z</td>
<td>24,632</td>
<td>11,969</td>
<td>5,946</td>
<td>42,547</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.232">v1.0.232</a></td>
<td>2020-07-28T22:34:40Z</td>
<td>608</td>
<td>185</td>
<td>161</td>
<td>954</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.227">v1.0.227</a></td>
<td>2020-07-07T20:44:54Z</td>
<td>19,611</td>
<td>9,341</td>
<td>4,170</td>
<td>33,122</td>
<td>39,786</td>
<td>15,130</td>
<td>9,547</td>
<td>64,463</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.226">v1.0.226</a></td>
<td>2020-07-04T10:21:26Z</td>
<td>4,742</td>
<td>2,174</td>
<td>641</td>
<td>7,557</td>
<td>4,763</td>
<td>2,196</td>
<td>671</td>
<td>7,630</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.224">v1.0.224</a></td>
<td>2020-06-20T22:26:08Z</td>
<td>24,506</td>
<td>10,883</td>
<td>5,957</td>
<td>41,346</td>
<td>24,572</td>
<td>10,919</td>
<td>5,975</td>
<td>41,466</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.223">v1.0.223</a></td>
<td>2020-06-20T11:51:27Z</td>
<td>143</td>
<td>70</td>
<td>59</td>
<td>272</td>
<td>151</td>
<td>80</td>
<td>63</td>
<td>294</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.221">v1.0.221</a></td>
<td>2020-06-20T01:44:20Z</td>
<td>810</td>
<td>163</td>
<td>189</td>
<td>1,162</td>
<td>819</td>
<td>171</td>
<td>193</td>
<td>1,183</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.220">v1.0.220</a></td>
<td>2020-06-13T18:26:22Z</td>
<td>31,271</td>
<td>9,854</td>
<td>6,383</td>
<td>47,508</td>
<td>31,394</td>
<td>9,860</td>
<td>6,392</td>
<td>47,646</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.218">v1.0.218</a></td>
<td>2020-06-07T10:43:34Z</td>
<td>14,363</td>
<td>6,919</td>
<td>2,939</td>
<td>24,221</td>
<td>14,396</td>
<td>6,926</td>
<td>2,944</td>
<td>24,266</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.217">v1.0.217</a></td>
@ -480,26 +496,26 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.216">v1.0.216</a></td>
<td>2020-05-24T14:21:01Z</td>
<td>35,792</td>
<td>14,170</td>
<td>10,108</td>
<td>60,070</td>
<td>35,921</td>
<td>14,191</td>
<td>10,117</td>
<td>60,229</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.214">v1.0.214</a></td>
<td>2020-05-21T17:15:15Z</td>
<td>6,346</td>
<td>3,429</td>
<td>6,358</td>
<td>3,433</td>
<td>755</td>
<td>10,530</td>
<td>10,546</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.212">v1.0.212</a></td>
<td>2020-05-21T07:48:39Z</td>
<td>193</td>
<td>194</td>
<td>58</td>
<td>41</td>
<td>292</td>
<td>293</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.211">v1.0.211</a></td>
@ -513,177 +529,177 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.209">v1.0.209</a></td>
<td>2020-05-17T18:32:51Z</td>
<td>1,383</td>
<td>812</td>
<td>141</td>
<td>2,336</td>
<td>818</td>
<td>142</td>
<td>2,343</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.207">v1.0.207</a></td>
<td>2020-05-10T16:37:35Z</td>
<td>1,167</td>
<td>1,170</td>
<td>254</td>
<td>1,008</td>
<td>2,429</td>
<td>2,432</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.201">v1.0.201</a></td>
<td>2020-04-15T22:55:13Z</td>
<td>51,691</td>
<td>19,997</td>
<td>18,161</td>
<td>89,849</td>
<td>51,847</td>
<td>20,010</td>
<td>18,162</td>
<td>90,019</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.200">v1.0.200</a></td>
<td>2020-04-12T12:17:46Z</td>
<td>9,534</td>
<td>4,876</td>
<td>1,893</td>
<td>16,303</td>
<td>4,878</td>
<td>1,895</td>
<td>16,307</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.199">v1.0.199</a></td>
<td>2020-04-10T18:41:58Z</td>
<td>19,177</td>
<td>19,186</td>
<td>5,872</td>
<td>3,777</td>
<td>28,826</td>
<td>28,835</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.197">v1.0.197</a></td>
<td>2020-03-30T17:21:22Z</td>
<td>21,955</td>
<td>9,477</td>
<td>5,548</td>
<td>36,980</td>
<td>21,983</td>
<td>9,485</td>
<td>5,565</td>
<td>37,033</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.195">v1.0.195</a></td>
<td>2020-03-22T19:56:12Z</td>
<td>18,836</td>
<td>7,927</td>
<td>4,493</td>
<td>31,256</td>
<td>18,840</td>
<td>7,928</td>
<td>4,498</td>
<td>31,266</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.194">v1.0.194</a></td>
<td>2020-03-14T00:00:32Z</td>
<td>1,256</td>
<td>1,353</td>
<td>1,261</td>
<td>1,356</td>
<td>496</td>
<td>3,105</td>
<td>3,113</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.193">v1.0.193</a></td>
<td>2020-03-08T08:58:53Z</td>
<td>28,552</td>
<td>10,881</td>
<td>28,564</td>
<td>10,883</td>
<td>7,338</td>
<td>46,771</td>
<td>46,785</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.192">v1.0.192</a></td>
<td>2020-03-06T23:27:52Z</td>
<td>453</td>
<td>457</td>
<td>111</td>
<td>82</td>
<td>646</td>
<td>650</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.190">v1.0.190</a></td>
<td>2020-03-06T01:22:22Z</td>
<td>351</td>
<td>354</td>
<td>79</td>
<td>79</td>
<td>509</td>
<td>512</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.189">v1.0.189</a></td>
<td>2020-03-04T17:27:15Z</td>
<td>326</td>
<td>329</td>
<td>88</td>
<td>87</td>
<td>501</td>
<td>504</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.187">v1.0.187</a></td>
<td>2020-03-01T12:31:06Z</td>
<td>904</td>
<td>906</td>
<td>222</td>
<td>258</td>
<td>1,384</td>
<td>260</td>
<td>1,388</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.179">v1.0.179</a></td>
<td>2020-01-24T22:42:41Z</td>
<td>70,893</td>
<td>28,416</td>
<td>22,451</td>
<td>121,760</td>
<td>70,904</td>
<td>28,427</td>
<td>22,465</td>
<td>121,796</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.178">v1.0.178</a></td>
<td>2020-01-20T19:06:45Z</td>
<td>17,507</td>
<td>5,950</td>
<td>2,571</td>
<td>26,028</td>
<td>17,512</td>
<td>5,951</td>
<td>2,573</td>
<td>26,036</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.177">v1.0.177</a></td>
<td>2019-12-30T14:40:40Z</td>
<td>1,923</td>
<td>1,927</td>
<td>428</td>
<td>621</td>
<td>2,972</td>
<td>627</td>
<td>2,982</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.176">v1.0.176</a></td>
<td>2019-12-14T10:36:44Z</td>
<td>3,111</td>
<td>2,521</td>
<td>456</td>
<td>6,088</td>
<td>3,113</td>
<td>2,522</td>
<td>460</td>
<td>6,095</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.175">v1.0.175</a></td>
<td>2019-12-08T11:48:47Z</td>
<td>71,517</td>
<td>16,814</td>
<td>16,401</td>
<td>104,732</td>
<td>71,698</td>
<td>16,832</td>
<td>16,426</td>
<td>104,956</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.174">v1.0.174</a></td>
<td>2019-11-12T18:20:58Z</td>
<td>30,370</td>
<td>11,646</td>
<td>30,375</td>
<td>11,653</td>
<td>8,213</td>
<td>50,229</td>
<td>50,241</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.173">v1.0.173</a></td>
<td>2019-11-11T08:33:35Z</td>
<td>5,052</td>
<td>2,068</td>
<td>735</td>
<td>7,855</td>
<td>736</td>
<td>7,856</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.170">v1.0.170</a></td>
<td>2019-10-13T22:13:04Z</td>
<td>27,351</td>
<td>8,715</td>
<td>7,660</td>
<td>43,726</td>
<td>27,356</td>
<td>8,718</td>
<td>7,661</td>
<td>43,735</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.169">v1.0.169</a></td>
<td>2019-09-27T18:35:13Z</td>
<td>17,071</td>
<td>5,910</td>
<td>17,074</td>
<td>5,911</td>
<td>3,749</td>
<td>26,730</td>
<td>26,734</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.168">v1.0.168</a></td>
@ -696,18 +712,18 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.167">v1.0.167</a></td>
<td>2019-09-10T08:48:37Z</td>
<td>16,768</td>
<td>5,692</td>
<td>16,770</td>
<td>5,693</td>
<td>3,697</td>
<td>26,157</td>
<td>26,160</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.166">v1.0.166</a></td>
<td>2019-09-09T17:35:54Z</td>
<td>1,948</td>
<td>554</td>
<td>232</td>
<td>2,734</td>
<td>233</td>
<td>2,735</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.165">v1.0.165</a></td>
@ -720,18 +736,18 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.161">v1.0.161</a></td>
<td>2019-07-13T18:30:00Z</td>
<td>19,259</td>
<td>19,262</td>
<td>6,344</td>
<td>4,130</td>
<td>29,733</td>
<td>29,736</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.160">v1.0.160</a></td>
<td>2019-06-15T00:21:40Z</td>
<td>30,406</td>
<td>30,411</td>
<td>7,732</td>
<td>8,095</td>
<td>46,233</td>
<td>46,238</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.159">v1.0.159</a></td>
@ -760,10 +776,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.153">v1.0.153</a></td>
<td>2019-05-15T06:27:29Z</td>
<td>841</td>
<td>92</td>
<td>842</td>
<td>93</td>
<td>103</td>
<td>1,036</td>
<td>1,038</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.152">v1.0.152</a></td>
@ -794,48 +810,48 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2019-05-08T19:12:24Z</td>
<td>123</td>
<td>49</td>
<td>91</td>
<td>263</td>
<td>92</td>
<td>264</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.145">v1.0.145</a></td>
<td>2019-05-03T09:16:53Z</td>
<td>6,984</td>
<td>6,988</td>
<td>2,854</td>
<td>1,433</td>
<td>11,271</td>
<td>11,275</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.143">v1.0.143</a></td>
<td>2019-04-22T10:51:38Z</td>
<td>11,908</td>
<td>3,542</td>
<td>3,543</td>
<td>2,775</td>
<td>18,225</td>
<td>18,226</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.142">v1.0.142</a></td>
<td>2019-04-02T16:44:51Z</td>
<td>14,626</td>
<td>4,553</td>
<td>14,633</td>
<td>4,555</td>
<td>4,723</td>
<td>23,902</td>
<td>23,911</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.140">v1.0.140</a></td>
<td>2019-03-10T20:59:58Z</td>
<td>13,617</td>
<td>4,160</td>
<td>3,134</td>
<td>20,911</td>
<td>4,161</td>
<td>3,147</td>
<td>20,925</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.139">v1.0.139</a></td>
<td>2019-03-09T10:06:48Z</td>
<td>112</td>
<td>52</td>
<td>40</td>
<td>204</td>
<td>41</td>
<td>205</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.138">v1.0.138</a></td>
@ -848,42 +864,42 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.137">v1.0.137</a></td>
<td>2019-03-03T01:12:51Z</td>
<td>577</td>
<td>578</td>
<td>52</td>
<td>80</td>
<td>709</td>
<td>710</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.135">v1.0.135</a></td>
<td>2019-02-27T23:36:57Z</td>
<td>12,467</td>
<td>12,470</td>
<td>3,950</td>
<td>4,068</td>
<td>20,485</td>
<td>4,069</td>
<td>20,489</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.134">v1.0.134</a></td>
<td>2019-02-27T10:21:44Z</td>
<td>1,458</td>
<td>559</td>
<td>215</td>
<td>2,232</td>
<td>1,460</td>
<td>561</td>
<td>216</td>
<td>2,237</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.132">v1.0.132</a></td>
<td>2019-02-26T23:02:05Z</td>
<td>1,077</td>
<td>443</td>
<td>91</td>
<td>1,611</td>
<td>1,079</td>
<td>445</td>
<td>92</td>
<td>1,616</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.127">v1.0.127</a></td>
<td>2019-02-14T23:12:48Z</td>
<td>9,705</td>
<td>9,711</td>
<td>3,162</td>
<td>2,924</td>
<td>15,791</td>
<td>15,797</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.126">v1.0.126</a></td>
@ -896,10 +912,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.125">v1.0.125</a></td>
<td>2019-01-26T18:14:33Z</td>
<td>10,241</td>
<td>10,242</td>
<td>3,549</td>
<td>1,699</td>
<td>15,489</td>
<td>15,490</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.120">v1.0.120</a></td>
@ -928,10 +944,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.117">v1.0.117</a></td>
<td>2018-11-24T12:05:24Z</td>
<td>16,245</td>
<td>16,249</td>
<td>4,885</td>
<td>6,377</td>
<td>27,507</td>
<td>27,511</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.116">v1.0.116</a></td>
@ -960,10 +976,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.111">v1.0.111</a></td>
<td>2018-09-30T20:15:09Z</td>
<td>11,987</td>
<td>3,263</td>
<td>11,988</td>
<td>3,269</td>
<td>3,659</td>
<td>18,909</td>
<td>18,916</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.110">v1.0.110</a></td>
@ -993,9 +1009,9 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.107">v1.0.107</a></td>
<td>2018-09-16T19:51:07Z</td>
<td>7,143</td>
<td>2,129</td>
<td>2,130</td>
<td>1,704</td>
<td>10,976</td>
<td>10,977</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.106">v1.0.106</a></td>
@ -1018,8 +1034,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-06-28T20:25:36Z</td>
<td>15,031</td>
<td>4,690</td>
<td>7,304</td>
<td>27,025</td>
<td>7,307</td>
<td>27,028</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.103">v1.0.103</a></td>
@ -1042,8 +1058,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-06-14T17:41:43Z</td>
<td>873</td>
<td>426</td>
<td>236</td>
<td>1,535</td>
<td>237</td>
<td>1,536</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.99">v1.0.99</a></td>
@ -1066,8 +1082,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-05-26T16:36:39Z</td>
<td>2,713</td>
<td>1,218</td>
<td>1,534</td>
<td>5,465</td>
<td>1,543</td>
<td>5,474</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.95">v1.0.95</a></td>
@ -1089,9 +1105,9 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.93">v1.0.93</a></td>
<td>2018-05-14T11:36:01Z</td>
<td>1,783</td>
<td>1,044</td>
<td>1,050</td>
<td>754</td>
<td>3,581</td>
<td>3,587</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.91">v1.0.91</a></td>
@ -1120,10 +1136,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.83">v1.0.83</a></td>
<td>2018-04-04T19:43:58Z</td>
<td>4,778</td>
<td>2,524</td>
<td>4,784</td>
<td>2,525</td>
<td>2,654</td>
<td>9,956</td>
<td>9,963</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.82">v1.0.82</a></td>
@ -1146,8 +1162,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-03-23T18:00:11Z</td>
<td>929</td>
<td>532</td>
<td>375</td>
<td>1,836</td>
<td>376</td>
<td>1,837</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.78">v1.0.78</a></td>
@ -1160,26 +1176,26 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.77">v1.0.77</a></td>
<td>2018-03-16T15:12:35Z</td>
<td>173</td>
<td>174</td>
<td>101</td>
<td>44</td>
<td>318</td>
<td>319</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.72">v1.0.72</a></td>
<td>2018-03-14T09:44:35Z</td>
<td>404</td>
<td>251</td>
<td>252</td>
<td>54</td>
<td>709</td>
<td>710</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.70">v1.0.70</a></td>
<td>2018-02-28T20:04:30Z</td>
<td>1,852</td>
<td>1,045</td>
<td>1,046</td>
<td>1,250</td>
<td>4,147</td>
<td>4,148</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.67">v1.0.67</a></td>
@ -1194,8 +1210,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-02-18T23:09:09Z</td>
<td>325</td>
<td>132</td>
<td>84</td>
<td>541</td>
<td>85</td>
<td>542</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.65">v1.0.65</a></td>
@ -1226,16 +1242,16 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2018-02-12T20:19:58Z</td>
<td>557</td>
<td>295</td>
<td>366</td>
<td>1,218</td>
<td>367</td>
<td>1,219</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.61">v0.10.61</a></td>
<td>2018-02-08T18:27:39Z</td>
<td>970</td>
<td>625</td>
<td>956</td>
<td>2,551</td>
<td>626</td>
<td>957</td>
<td>2,553</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.60">v0.10.60</a></td>
@ -1312,10 +1328,10 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.39">v0.10.39</a></td>
<td>2017-12-11T21:19:44Z</td>
<td>5,742</td>
<td>4,218</td>
<td>3,120</td>
<td>13,080</td>
<td>5,753</td>
<td>4,226</td>
<td>3,128</td>
<td>13,107</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.38">v0.10.38</a></td>
@ -1369,9 +1385,9 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.31">v0.10.31</a></td>
<td>2017-12-01T09:56:44Z</td>
<td>890</td>
<td>1,446</td>
<td>1,447</td>
<td>406</td>
<td>2,742</td>
<td>2,743</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.30">v0.10.30</a></td>
@ -1402,8 +1418,8 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td>2017-11-24T14:27:49Z</td>
<td>147</td>
<td>692</td>
<td>6,278</td>
<td>7,117</td>
<td>6,300</td>
<td>7,139</td>
</tr>
<tr>
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.23">v0.10.23</a></td>
@ -1441,9 +1457,9 @@ https://github.com/laurent22/joplin/blob/master/readme/stats.md
<td><a href="https://github.com/laurent22/joplin/releases/tag/v0.10.19">v0.10.19</a></td>
<td>2017-11-20T18:59:48Z</td>
<td>14</td>
<td>638</td>
<td>639</td>
<td>12</td>
<td>664</td>
<td>665</td>
</tr>
</tbody>
</table>

File diff suppressed because it is too large Load Diff

View File

@ -2,120 +2,122 @@
Name | Value
--- | ---
Total Windows downloads | 914,303
Total macOs downloads | 352,705
Total Linux downloads | 256,195
Total Windows downloads | 960,363
Total macOs downloads | 370,685
Total Linux downloads | 267,570
Windows % | 60%
macOS % | 23%
Linux % | 17%
Version | Date | Windows | macOS | Linux | Total
--- | --- | --- | --- | --- | ---
[v1.0.231](https://github.com/laurent22/joplin/releases/tag/v1.0.231) | 2020-07-24T17:21:53Z | 23 | 10 | 9 | 42
[v1.0.229](https://github.com/laurent22/joplin/releases/tag/v1.0.229) | 2020-07-14T15:15:18Z | 829 | 323 | 452 | 1,604
[v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 19,611 | 9,341 | 4,170 | 33,122
[v1.0.226](https://github.com/laurent22/joplin/releases/tag/v1.0.226) | 2020-07-04T10:21:26Z | 4,742 | 2,174 | 641 | 7,557
[v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 24,506 | 10,883 | 5,957 | 41,346
[v1.0.223](https://github.com/laurent22/joplin/releases/tag/v1.0.223) | 2020-06-20T11:51:27Z | 143 | 70 | 59 | 272
[v1.0.221](https://github.com/laurent22/joplin/releases/tag/v1.0.221) | 2020-06-20T01:44:20Z | 810 | 163 | 189 | 1,162
[v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 31,271 | 9,854 | 6,383 | 47,508
[v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,363 | 6,919 | 2,939 | 24,221
[v1.0.235](https://github.com/laurent22/joplin/releases/tag/v1.0.235) | 2020-08-18T22:08:01Z | 302 | 66 | 55 | 423
[v1.0.234](https://github.com/laurent22/joplin/releases/tag/v1.0.234) | 2020-08-17T23:13:02Z | 288 | 76 | 71 | 435
[v1.0.233](https://github.com/laurent22/joplin/releases/tag/v1.0.233) | 2020-08-01T14:51:15Z | 24,632 | 11,969 | 5,946 | 42,547
[v1.0.232](https://github.com/laurent22/joplin/releases/tag/v1.0.232) | 2020-07-28T22:34:40Z | 608 | 185 | 161 | 954
[v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 39,786 | 15,130 | 9,547 | 64,463
[v1.0.226](https://github.com/laurent22/joplin/releases/tag/v1.0.226) | 2020-07-04T10:21:26Z | 4,763 | 2,196 | 671 | 7,630
[v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 24,572 | 10,919 | 5,975 | 41,466
[v1.0.223](https://github.com/laurent22/joplin/releases/tag/v1.0.223) | 2020-06-20T11:51:27Z | 151 | 80 | 63 | 294
[v1.0.221](https://github.com/laurent22/joplin/releases/tag/v1.0.221) | 2020-06-20T01:44:20Z | 819 | 171 | 193 | 1,183
[v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 31,394 | 9,860 | 6,392 | 47,646
[v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,396 | 6,926 | 2,944 | 24,266
[v1.0.217](https://github.com/laurent22/joplin/releases/tag/v1.0.217) | 2020-06-06T15:17:27Z | 212 | 80 | 49 | 341
[v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 35,792 | 14,170 | 10,108 | 60,070
[v1.0.214](https://github.com/laurent22/joplin/releases/tag/v1.0.214) | 2020-05-21T17:15:15Z | 6,346 | 3,429 | 755 | 10,530
[v1.0.212](https://github.com/laurent22/joplin/releases/tag/v1.0.212) | 2020-05-21T07:48:39Z | 193 | 58 | 41 | 292
[v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 35,921 | 14,191 | 10,117 | 60,229
[v1.0.214](https://github.com/laurent22/joplin/releases/tag/v1.0.214) | 2020-05-21T17:15:15Z | 6,358 | 3,433 | 755 | 10,546
[v1.0.212](https://github.com/laurent22/joplin/releases/tag/v1.0.212) | 2020-05-21T07:48:39Z | 194 | 58 | 41 | 293
[v1.0.211](https://github.com/laurent22/joplin/releases/tag/v1.0.211) | 2020-05-20T08:59:16Z | 289 | 123 | 81 | 493
[v1.0.209](https://github.com/laurent22/joplin/releases/tag/v1.0.209) | 2020-05-17T18:32:51Z | 1,383 | 812 | 141 | 2,336
[v1.0.207](https://github.com/laurent22/joplin/releases/tag/v1.0.207) | 2020-05-10T16:37:35Z | 1,167 | 254 | 1,008 | 2,429
[v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 51,691 | 19,997 | 18,161 | 89,849
[v1.0.200](https://github.com/laurent22/joplin/releases/tag/v1.0.200) | 2020-04-12T12:17:46Z | 9,534 | 4,876 | 1,893 | 16,303
[v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,177 | 5,872 | 3,777 | 28,826
[v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 21,955 | 9,477 | 5,548 | 36,980
[v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 18,836 | 7,927 | 4,493 | 31,256
[v1.0.194](https://github.com/laurent22/joplin/releases/tag/v1.0.194) | 2020-03-14T00:00:32Z | 1,256 | 1,353 | 496 | 3,105
[v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,552 | 10,881 | 7,338 | 46,771
[v1.0.192](https://github.com/laurent22/joplin/releases/tag/v1.0.192) | 2020-03-06T23:27:52Z | 453 | 111 | 82 | 646
[v1.0.190](https://github.com/laurent22/joplin/releases/tag/v1.0.190) | 2020-03-06T01:22:22Z | 351 | 79 | 79 | 509
[v1.0.189](https://github.com/laurent22/joplin/releases/tag/v1.0.189) | 2020-03-04T17:27:15Z | 326 | 88 | 87 | 501
[v1.0.187](https://github.com/laurent22/joplin/releases/tag/v1.0.187) | 2020-03-01T12:31:06Z | 904 | 222 | 258 | 1,384
[v1.0.179](https://github.com/laurent22/joplin/releases/tag/v1.0.179) | 2020-01-24T22:42:41Z | 70,893 | 28,416 | 22,451 | 121,760
[v1.0.178](https://github.com/laurent22/joplin/releases/tag/v1.0.178) | 2020-01-20T19:06:45Z | 17,507 | 5,950 | 2,571 | 26,028
[v1.0.177](https://github.com/laurent22/joplin/releases/tag/v1.0.177) | 2019-12-30T14:40:40Z | 1,923 | 428 | 621 | 2,972
[v1.0.176](https://github.com/laurent22/joplin/releases/tag/v1.0.176) | 2019-12-14T10:36:44Z | 3,111 | 2,521 | 456 | 6,088
[v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 71,517 | 16,814 | 16,401 | 104,732
[v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,370 | 11,646 | 8,213 | 50,229
[v1.0.173](https://github.com/laurent22/joplin/releases/tag/v1.0.173) | 2019-11-11T08:33:35Z | 5,052 | 2,068 | 735 | 7,855
[v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,351 | 8,715 | 7,660 | 43,726
[v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,071 | 5,910 | 3,749 | 26,730
[v1.0.209](https://github.com/laurent22/joplin/releases/tag/v1.0.209) | 2020-05-17T18:32:51Z | 1,383 | 818 | 142 | 2,343
[v1.0.207](https://github.com/laurent22/joplin/releases/tag/v1.0.207) | 2020-05-10T16:37:35Z | 1,170 | 254 | 1,008 | 2,432
[v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 51,847 | 20,010 | 18,162 | 90,019
[v1.0.200](https://github.com/laurent22/joplin/releases/tag/v1.0.200) | 2020-04-12T12:17:46Z | 9,534 | 4,878 | 1,895 | 16,307
[v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,186 | 5,872 | 3,777 | 28,835
[v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 21,983 | 9,485 | 5,565 | 37,033
[v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 18,840 | 7,928 | 4,498 | 31,266
[v1.0.194](https://github.com/laurent22/joplin/releases/tag/v1.0.194) | 2020-03-14T00:00:32Z | 1,261 | 1,356 | 496 | 3,113
[v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,564 | 10,883 | 7,338 | 46,785
[v1.0.192](https://github.com/laurent22/joplin/releases/tag/v1.0.192) | 2020-03-06T23:27:52Z | 457 | 111 | 82 | 650
[v1.0.190](https://github.com/laurent22/joplin/releases/tag/v1.0.190) | 2020-03-06T01:22:22Z | 354 | 79 | 79 | 512
[v1.0.189](https://github.com/laurent22/joplin/releases/tag/v1.0.189) | 2020-03-04T17:27:15Z | 329 | 88 | 87 | 504
[v1.0.187](https://github.com/laurent22/joplin/releases/tag/v1.0.187) | 2020-03-01T12:31:06Z | 906 | 222 | 260 | 1,388
[v1.0.179](https://github.com/laurent22/joplin/releases/tag/v1.0.179) | 2020-01-24T22:42:41Z | 70,904 | 28,427 | 22,465 | 121,796
[v1.0.178](https://github.com/laurent22/joplin/releases/tag/v1.0.178) | 2020-01-20T19:06:45Z | 17,512 | 5,951 | 2,573 | 26,036
[v1.0.177](https://github.com/laurent22/joplin/releases/tag/v1.0.177) | 2019-12-30T14:40:40Z | 1,927 | 428 | 627 | 2,982
[v1.0.176](https://github.com/laurent22/joplin/releases/tag/v1.0.176) | 2019-12-14T10:36:44Z | 3,113 | 2,522 | 460 | 6,095
[v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 71,698 | 16,832 | 16,426 | 104,956
[v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,375 | 11,653 | 8,213 | 50,241
[v1.0.173](https://github.com/laurent22/joplin/releases/tag/v1.0.173) | 2019-11-11T08:33:35Z | 5,052 | 2,068 | 736 | 7,856
[v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,356 | 8,718 | 7,661 | 43,735
[v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,074 | 5,911 | 3,749 | 26,734
[v1.0.168](https://github.com/laurent22/joplin/releases/tag/v1.0.168) | 2019-09-25T21:21:38Z | 5,320 | 2,263 | 710 | 8,293
[v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,768 | 5,692 | 3,697 | 26,157
[v1.0.166](https://github.com/laurent22/joplin/releases/tag/v1.0.166) | 2019-09-09T17:35:54Z | 1,948 | 554 | 232 | 2,734
[v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,770 | 5,693 | 3,697 | 26,160
[v1.0.166](https://github.com/laurent22/joplin/releases/tag/v1.0.166) | 2019-09-09T17:35:54Z | 1,948 | 554 | 233 | 2,735
[v1.0.165](https://github.com/laurent22/joplin/releases/tag/v1.0.165) | 2019-08-14T21:46:29Z | 18,869 | 6,955 | 5,458 | 31,282
[v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,259 | 6,344 | 4,130 | 29,733
[v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,406 | 7,732 | 8,095 | 46,233
[v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,262 | 6,344 | 4,130 | 29,736
[v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,411 | 7,732 | 8,095 | 46,238
[v1.0.159](https://github.com/laurent22/joplin/releases/tag/v1.0.159) | 2019-06-08T00:00:19Z | 5,186 | 2,171 | 1,102 | 8,459
[v1.0.158](https://github.com/laurent22/joplin/releases/tag/v1.0.158) | 2019-05-27T19:01:18Z | 9,806 | 3,529 | 1,933 | 15,268
[v1.0.157](https://github.com/laurent22/joplin/releases/tag/v1.0.157) | 2019-05-26T17:55:53Z | 2,170 | 838 | 287 | 3,295
[v1.0.153](https://github.com/laurent22/joplin/releases/tag/v1.0.153) | 2019-05-15T06:27:29Z | 841 | 92 | 103 | 1,036
[v1.0.153](https://github.com/laurent22/joplin/releases/tag/v1.0.153) | 2019-05-15T06:27:29Z | 842 | 93 | 103 | 1,038
[v1.0.152](https://github.com/laurent22/joplin/releases/tag/v1.0.152) | 2019-05-13T09:08:07Z | 13,852 | 4,417 | 4,058 | 22,327
[v1.0.151](https://github.com/laurent22/joplin/releases/tag/v1.0.151) | 2019-05-12T15:14:32Z | 1,946 | 527 | 954 | 3,427
[v1.0.150](https://github.com/laurent22/joplin/releases/tag/v1.0.150) | 2019-05-12T11:27:48Z | 415 | 126 | 63 | 604
[v1.0.148](https://github.com/laurent22/joplin/releases/tag/v1.0.148) | 2019-05-08T19:12:24Z | 123 | 49 | 91 | 263
[v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 6,984 | 2,854 | 1,433 | 11,271
[v1.0.143](https://github.com/laurent22/joplin/releases/tag/v1.0.143) | 2019-04-22T10:51:38Z | 11,908 | 3,542 | 2,775 | 18,225
[v1.0.142](https://github.com/laurent22/joplin/releases/tag/v1.0.142) | 2019-04-02T16:44:51Z | 14,626 | 4,553 | 4,723 | 23,902
[v1.0.140](https://github.com/laurent22/joplin/releases/tag/v1.0.140) | 2019-03-10T20:59:58Z | 13,617 | 4,160 | 3,134 | 20,911
[v1.0.139](https://github.com/laurent22/joplin/releases/tag/v1.0.139) | 2019-03-09T10:06:48Z | 112 | 52 | 40 | 204
[v1.0.148](https://github.com/laurent22/joplin/releases/tag/v1.0.148) | 2019-05-08T19:12:24Z | 123 | 49 | 92 | 264
[v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 6,988 | 2,854 | 1,433 | 11,275
[v1.0.143](https://github.com/laurent22/joplin/releases/tag/v1.0.143) | 2019-04-22T10:51:38Z | 11,908 | 3,543 | 2,775 | 18,226
[v1.0.142](https://github.com/laurent22/joplin/releases/tag/v1.0.142) | 2019-04-02T16:44:51Z | 14,633 | 4,555 | 4,723 | 23,911
[v1.0.140](https://github.com/laurent22/joplin/releases/tag/v1.0.140) | 2019-03-10T20:59:58Z | 13,617 | 4,161 | 3,147 | 20,925
[v1.0.139](https://github.com/laurent22/joplin/releases/tag/v1.0.139) | 2019-03-09T10:06:48Z | 112 | 52 | 41 | 205
[v1.0.138](https://github.com/laurent22/joplin/releases/tag/v1.0.138) | 2019-03-03T17:23:00Z | 140 | 80 | 81 | 301
[v1.0.137](https://github.com/laurent22/joplin/releases/tag/v1.0.137) | 2019-03-03T01:12:51Z | 577 | 52 | 80 | 709
[v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,467 | 3,950 | 4,068 | 20,485
[v1.0.134](https://github.com/laurent22/joplin/releases/tag/v1.0.134) | 2019-02-27T10:21:44Z | 1,458 | 559 | 215 | 2,232
[v1.0.132](https://github.com/laurent22/joplin/releases/tag/v1.0.132) | 2019-02-26T23:02:05Z | 1,077 | 443 | 91 | 1,611
[v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,705 | 3,162 | 2,924 | 15,791
[v1.0.137](https://github.com/laurent22/joplin/releases/tag/v1.0.137) | 2019-03-03T01:12:51Z | 578 | 52 | 80 | 710
[v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,470 | 3,950 | 4,069 | 20,489
[v1.0.134](https://github.com/laurent22/joplin/releases/tag/v1.0.134) | 2019-02-27T10:21:44Z | 1,460 | 561 | 216 | 2,237
[v1.0.132](https://github.com/laurent22/joplin/releases/tag/v1.0.132) | 2019-02-26T23:02:05Z | 1,079 | 445 | 92 | 1,616
[v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,711 | 3,162 | 2,924 | 15,797
[v1.0.126](https://github.com/laurent22/joplin/releases/tag/v1.0.126) | 2019-02-09T19:46:16Z | 924 | 65 | 114 | 1,103
[v1.0.125](https://github.com/laurent22/joplin/releases/tag/v1.0.125) | 2019-01-26T18:14:33Z | 10,241 | 3,549 | 1,699 | 15,489
[v1.0.125](https://github.com/laurent22/joplin/releases/tag/v1.0.125) | 2019-01-26T18:14:33Z | 10,242 | 3,549 | 1,699 | 15,490
[v1.0.120](https://github.com/laurent22/joplin/releases/tag/v1.0.120) | 2019-01-10T21:42:53Z | 15,596 | 5,192 | 6,510 | 27,298
[v1.0.119](https://github.com/laurent22/joplin/releases/tag/v1.0.119) | 2018-12-18T12:40:22Z | 8,898 | 3,254 | 2,011 | 14,163
[v1.0.118](https://github.com/laurent22/joplin/releases/tag/v1.0.118) | 2019-01-11T08:34:13Z | 709 | 241 | 86 | 1,036
[v1.0.117](https://github.com/laurent22/joplin/releases/tag/v1.0.117) | 2018-11-24T12:05:24Z | 16,245 | 4,885 | 6,377 | 27,507
[v1.0.117](https://github.com/laurent22/joplin/releases/tag/v1.0.117) | 2018-11-24T12:05:24Z | 16,249 | 4,885 | 6,377 | 27,511
[v1.0.116](https://github.com/laurent22/joplin/releases/tag/v1.0.116) | 2018-11-20T19:09:24Z | 3,466 | 1,114 | 711 | 5,291
[v1.0.115](https://github.com/laurent22/joplin/releases/tag/v1.0.115) | 2018-11-16T16:52:02Z | 3,650 | 1,296 | 796 | 5,742
[v1.0.114](https://github.com/laurent22/joplin/releases/tag/v1.0.114) | 2018-10-24T20:14:10Z | 11,388 | 3,490 | 3,827 | 18,705
[v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 11,987 | 3,263 | 3,659 | 18,909
[v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 11,988 | 3,269 | 3,659 | 18,916
[v1.0.110](https://github.com/laurent22/joplin/releases/tag/v1.0.110) | 2018-09-29T12:29:21Z | 954 | 402 | 115 | 1,471
[v1.0.109](https://github.com/laurent22/joplin/releases/tag/v1.0.109) | 2018-09-27T18:01:41Z | 2,094 | 698 | 325 | 3,117
[v1.0.108](https://github.com/laurent22/joplin/releases/tag/v1.0.108) | 2018-09-29T18:49:29Z | 23 | 15 | 10 | 48
[v1.0.107](https://github.com/laurent22/joplin/releases/tag/v1.0.107) | 2018-09-16T19:51:07Z | 7,143 | 2,129 | 1,704 | 10,976
[v1.0.107](https://github.com/laurent22/joplin/releases/tag/v1.0.107) | 2018-09-16T19:51:07Z | 7,143 | 2,130 | 1,704 | 10,977
[v1.0.106](https://github.com/laurent22/joplin/releases/tag/v1.0.106) | 2018-09-08T15:23:40Z | 4,551 | 1,451 | 314 | 6,316
[v1.0.105](https://github.com/laurent22/joplin/releases/tag/v1.0.105) | 2018-09-05T11:29:36Z | 4,649 | 1,581 | 1,449 | 7,679
[v1.0.104](https://github.com/laurent22/joplin/releases/tag/v1.0.104) | 2018-06-28T20:25:36Z | 15,031 | 4,690 | 7,304 | 27,025
[v1.0.104](https://github.com/laurent22/joplin/releases/tag/v1.0.104) | 2018-06-28T20:25:36Z | 15,031 | 4,690 | 7,307 | 27,028
[v1.0.103](https://github.com/laurent22/joplin/releases/tag/v1.0.103) | 2018-06-21T19:38:13Z | 2,046 | 880 | 677 | 3,603
[v1.0.101](https://github.com/laurent22/joplin/releases/tag/v1.0.101) | 2018-06-17T18:35:11Z | 1,301 | 601 | 406 | 2,308
[v1.0.100](https://github.com/laurent22/joplin/releases/tag/v1.0.100) | 2018-06-14T17:41:43Z | 873 | 426 | 236 | 1,535
[v1.0.100](https://github.com/laurent22/joplin/releases/tag/v1.0.100) | 2018-06-14T17:41:43Z | 873 | 426 | 237 | 1,536
[v1.0.99](https://github.com/laurent22/joplin/releases/tag/v1.0.99) | 2018-06-10T13:18:23Z | 1,248 | 591 | 377 | 2,216
[v1.0.97](https://github.com/laurent22/joplin/releases/tag/v1.0.97) | 2018-06-09T19:23:34Z | 307 | 152 | 58 | 517
[v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,713 | 1,218 | 1,534 | 5,465
[v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,713 | 1,218 | 1,543 | 5,474
[v1.0.95](https://github.com/laurent22/joplin/releases/tag/v1.0.95) | 2018-05-25T13:04:30Z | 411 | 213 | 113 | 737
[v1.0.94](https://github.com/laurent22/joplin/releases/tag/v1.0.94) | 2018-05-21T20:52:59Z | 1,126 | 578 | 391 | 2,095
[v1.0.93](https://github.com/laurent22/joplin/releases/tag/v1.0.93) | 2018-05-14T11:36:01Z | 1,783 | 1,044 | 754 | 3,581
[v1.0.93](https://github.com/laurent22/joplin/releases/tag/v1.0.93) | 2018-05-14T11:36:01Z | 1,783 | 1,050 | 754 | 3,587
[v1.0.91](https://github.com/laurent22/joplin/releases/tag/v1.0.91) | 2018-05-10T14:48:04Z | 823 | 545 | 302 | 1,670
[v1.0.89](https://github.com/laurent22/joplin/releases/tag/v1.0.89) | 2018-05-09T13:05:05Z | 486 | 223 | 106 | 815
[v1.0.85](https://github.com/laurent22/joplin/releases/tag/v1.0.85) | 2018-05-01T21:08:24Z | 1,646 | 944 | 626 | 3,216
[v1.0.83](https://github.com/laurent22/joplin/releases/tag/v1.0.83) | 2018-04-04T19:43:58Z | 4,778 | 2,524 | 2,654 | 9,956
[v1.0.83](https://github.com/laurent22/joplin/releases/tag/v1.0.83) | 2018-04-04T19:43:58Z | 4,784 | 2,525 | 2,654 | 9,963
[v1.0.82](https://github.com/laurent22/joplin/releases/tag/v1.0.82) | 2018-03-31T19:16:31Z | 691 | 397 | 118 | 1,206
[v1.0.81](https://github.com/laurent22/joplin/releases/tag/v1.0.81) | 2018-03-28T08:13:58Z | 998 | 593 | 779 | 2,370
[v1.0.79](https://github.com/laurent22/joplin/releases/tag/v1.0.79) | 2018-03-23T18:00:11Z | 929 | 532 | 375 | 1,836
[v1.0.79](https://github.com/laurent22/joplin/releases/tag/v1.0.79) | 2018-03-23T18:00:11Z | 929 | 532 | 376 | 1,837
[v1.0.78](https://github.com/laurent22/joplin/releases/tag/v1.0.78) | 2018-03-17T15:27:18Z | 1,310 | 864 | 867 | 3,041
[v1.0.77](https://github.com/laurent22/joplin/releases/tag/v1.0.77) | 2018-03-16T15:12:35Z | 173 | 101 | 44 | 318
[v1.0.72](https://github.com/laurent22/joplin/releases/tag/v1.0.72) | 2018-03-14T09:44:35Z | 404 | 251 | 54 | 709
[v1.0.70](https://github.com/laurent22/joplin/releases/tag/v1.0.70) | 2018-02-28T20:04:30Z | 1,852 | 1,045 | 1,250 | 4,147
[v1.0.77](https://github.com/laurent22/joplin/releases/tag/v1.0.77) | 2018-03-16T15:12:35Z | 174 | 101 | 44 | 319
[v1.0.72](https://github.com/laurent22/joplin/releases/tag/v1.0.72) | 2018-03-14T09:44:35Z | 404 | 252 | 54 | 710
[v1.0.70](https://github.com/laurent22/joplin/releases/tag/v1.0.70) | 2018-02-28T20:04:30Z | 1,852 | 1,046 | 1,250 | 4,148
[v1.0.67](https://github.com/laurent22/joplin/releases/tag/v1.0.67) | 2018-02-19T22:51:08Z | 1,813 | 598 | 0 | 2,411
[v1.0.66](https://github.com/laurent22/joplin/releases/tag/v1.0.66) | 2018-02-18T23:09:09Z | 325 | 132 | 84 | 541
[v1.0.66](https://github.com/laurent22/joplin/releases/tag/v1.0.66) | 2018-02-18T23:09:09Z | 325 | 132 | 85 | 542
[v1.0.65](https://github.com/laurent22/joplin/releases/tag/v1.0.65) | 2018-02-17T20:02:25Z | 192 | 122 | 133 | 447
[v1.0.64](https://github.com/laurent22/joplin/releases/tag/v1.0.64) | 2018-02-16T00:58:20Z | 1,083 | 541 | 1,123 | 2,747
[v1.0.63](https://github.com/laurent22/joplin/releases/tag/v1.0.63) | 2018-02-14T19:40:36Z | 299 | 157 | 93 | 549
[v1.0.62](https://github.com/laurent22/joplin/releases/tag/v1.0.62) | 2018-02-12T20:19:58Z | 557 | 295 | 366 | 1,218
[v0.10.61](https://github.com/laurent22/joplin/releases/tag/v0.10.61) | 2018-02-08T18:27:39Z | 970 | 625 | 956 | 2,551
[v1.0.62](https://github.com/laurent22/joplin/releases/tag/v1.0.62) | 2018-02-12T20:19:58Z | 557 | 295 | 367 | 1,219
[v0.10.61](https://github.com/laurent22/joplin/releases/tag/v0.10.61) | 2018-02-08T18:27:39Z | 970 | 626 | 957 | 2,553
[v0.10.60](https://github.com/laurent22/joplin/releases/tag/v0.10.60) | 2018-02-06T13:09:56Z | 720 | 517 | 552 | 1,789
[v0.10.54](https://github.com/laurent22/joplin/releases/tag/v0.10.54) | 2018-01-31T20:21:30Z | 1,818 | 1,456 | 320 | 3,594
[v0.10.52](https://github.com/laurent22/joplin/releases/tag/v0.10.52) | 2018-01-31T19:25:18Z | 45 | 629 | 15 | 689
@ -125,20 +127,20 @@ Version | Date | Windows | macOS | Linux | Total
[v0.10.43](https://github.com/laurent22/joplin/releases/tag/v0.10.43) | 2018-01-08T10:12:10Z | 3,436 | 2,349 | 1,205 | 6,990
[v0.10.41](https://github.com/laurent22/joplin/releases/tag/v0.10.41) | 2018-01-05T20:38:12Z | 1,035 | 1,545 | 237 | 2,817
[v0.10.40](https://github.com/laurent22/joplin/releases/tag/v0.10.40) | 2018-01-02T23:16:57Z | 1,593 | 1,783 | 338 | 3,714
[v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,742 | 4,218 | 3,120 | 13,080
[v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,753 | 4,226 | 3,128 | 13,107
[v0.10.38](https://github.com/laurent22/joplin/releases/tag/v0.10.38) | 2017-12-08T10:12:06Z | 1,047 | 1,227 | 306 | 2,580
[v0.10.37](https://github.com/laurent22/joplin/releases/tag/v0.10.37) | 2017-12-07T19:38:05Z | 263 | 841 | 81 | 1,185
[v0.10.36](https://github.com/laurent22/joplin/releases/tag/v0.10.36) | 2017-12-05T09:34:40Z | 1,013 | 1,352 | 437 | 2,802
[v0.10.35](https://github.com/laurent22/joplin/releases/tag/v0.10.35) | 2017-12-02T15:56:08Z | 1,575 | 1,544 | 744 | 3,863
[v0.10.34](https://github.com/laurent22/joplin/releases/tag/v0.10.34) | 2017-12-02T14:50:28Z | 88 | 666 | 59 | 813
[v0.10.33](https://github.com/laurent22/joplin/releases/tag/v0.10.33) | 2017-12-02T13:20:39Z | 59 | 655 | 21 | 735
[v0.10.31](https://github.com/laurent22/joplin/releases/tag/v0.10.31) | 2017-12-01T09:56:44Z | 890 | 1,446 | 406 | 2,742
[v0.10.31](https://github.com/laurent22/joplin/releases/tag/v0.10.31) | 2017-12-01T09:56:44Z | 890 | 1,447 | 406 | 2,743
[v0.10.30](https://github.com/laurent22/joplin/releases/tag/v0.10.30) | 2017-11-30T20:28:16Z | 721 | 1,365 | 419 | 2,505
[v0.10.28](https://github.com/laurent22/joplin/releases/tag/v0.10.28) | 2017-11-30T01:07:46Z | 1,325 | 1,696 | 872 | 3,893
[v0.10.26](https://github.com/laurent22/joplin/releases/tag/v0.10.26) | 2017-11-29T16:02:17Z | 185 | 697 | 260 | 1,142
[v0.10.25](https://github.com/laurent22/joplin/releases/tag/v0.10.25) | 2017-11-24T14:27:49Z | 147 | 692 | 6,278 | 7,117
[v0.10.25](https://github.com/laurent22/joplin/releases/tag/v0.10.25) | 2017-11-24T14:27:49Z | 147 | 692 | 6,300 | 7,139
[v0.10.23](https://github.com/laurent22/joplin/releases/tag/v0.10.23) | 2017-11-21T19:38:41Z | 131 | 643 | 27 | 801
[v0.10.22](https://github.com/laurent22/joplin/releases/tag/v0.10.22) | 2017-11-20T21:45:57Z | 83 | 641 | 18 | 742
[v0.10.21](https://github.com/laurent22/joplin/releases/tag/v0.10.21) | 2017-11-18T00:53:15Z | 50 | 634 | 12 | 696
[v0.10.20](https://github.com/laurent22/joplin/releases/tag/v0.10.20) | 2017-11-17T17:18:25Z | 31 | 645 | 21 | 697
[v0.10.19](https://github.com/laurent22/joplin/releases/tag/v0.10.19) | 2017-11-20T18:59:48Z | 14 | 638 | 12 | 664
[v0.10.19](https://github.com/laurent22/joplin/releases/tag/v0.10.19) | 2017-11-20T18:59:48Z | 14 | 639 | 12 | 665