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

Compare commits

..

91 Commits

Author SHA1 Message Date
Laurent Cozic
7e1b38b936 eslint 2022-01-06 20:06:33 +00:00
Laurent Cozic
a11402db6d fix ci 2022-01-06 18:48:55 +00:00
Laurent Cozic
c19d533d93 fix lock 2022-01-06 18:27:18 +00:00
Laurent Cozic
1a4ff7054a Add support for plugin task list 2022-01-06 17:46:45 +00:00
Laurent Cozic
71140a638f Minor clipper tweaks 2022-01-06 15:46:28 +00:00
Laurent Cozic
6ba0fce237 Doc: Update Joplin Cloud FAQ 2022-01-06 12:22:23 +00:00
Laurent Cozic
c033a343c1 Doc: Update Joplin Server license 2022-01-06 12:00:54 +00:00
Daeraxa
898c96a566 Tools: Fix desktop app build (#5960) 2022-01-06 10:54:10 +00:00
CandleCandle
b83fa133b2 Doc: Default S3 permissions require 'GetObject' (#5957) 2022-01-05 16:46:41 +00:00
reportxx
ec7fec8b59 All: Translation: Update sv.po (#5950) 2022-01-03 18:14:37 -05:00
Fusion future
b2fb4f2ea2 Desktop: Add "X-GNOME-SingleWindow=true" to the desktop file (#5948)
Since this commit (ebd2acd98e),
Plasma Desktop will check "X-GNOME-SingleWindow" property to determine
whether to show "Open New Window" action in the context menu of a task.

Joplin cannot launch a new instance or open a new window, so add the
property and set it to true to hide the action.
2022-01-02 21:15:08 -07:00
Laurent Cozic
c74e51a58e Tools: Apply "withRetry" technique to copyPluginAssets too to try to fix CI 2022-01-02 18:38:06 +01:00
Daeraxa
7cba4be498 Doc: update e2ee spec paths and links (#5938) 2022-01-02 12:03:07 -05:00
giorgi shengelaia
19b396f2ec Doc: fix grammar and typos (#5946) 2022-01-02 11:57:30 -05:00
Laurent
4ed7c340a0 Tools: Fixed Docker image building and make it more stable (#5942) 2022-01-02 12:48:03 +00:00
Laurent Cozic
fe770917fd Tools: Also build Docker image using sequential build 2022-01-01 15:28:33 +01:00
Laurent Cozic
f2168d3bca Tools: Also build Docker image using sequential build 2022-01-01 15:24:56 +01:00
Laurent Cozic
5d4ebc6e14 Tools: Build package sequentially on CI to try to prevent various file access errors 2022-01-01 15:06:57 +01:00
Laurent Cozic
3cf0841775 Desktop: Fixes #5707: Add back text editor commands to Command Palette 2021-12-31 09:20:29 +01:00
Laurent Cozic
e5b6ecc50b Chore: Added back accidentally ignored file (loadEmojiLib.js) 2021-12-31 08:40:54 +01:00
Laurent Cozic
f451633a51 Desktop: Fixes #5927: Update menu item labels when the language changes 2021-12-31 07:50:32 +01:00
Laurent Cozic
e813d15ef2 Desktop: Resolves #5934: Use same notebook dialog when creating a new notebook too 2021-12-31 07:26:06 +01:00
Laurent Cozic
b5b02d8d7b Chore: Removed unused method 2021-12-30 12:11:23 +01:00
Laurent Cozic
2660ff3af6 Plugins: Adds joplin.workspace.onResourceChange 2021-12-30 12:11:22 +01:00
Xavi Ivars
59cdcaf8d1 All: Translation: Update ca.po (#5928)
* Update ca.po

* Update ca.po
2021-12-29 18:30:22 -05:00
Laurent Cozic
9426a2170c Server v2.7.2 2021-12-29 14:34:28 +01:00
Laurent Cozic
b47a541976 Server v2.7.1 2021-12-29 14:34:28 +01:00
Laurent Cozic
4df5ad5c7a Tools: Trying to fix Docker image building 2021-12-29 14:34:07 +01:00
Laurent Cozic
6f0f3d586e Fixed starting Joplin Server 2021-12-29 12:20:16 +01:00
Laurent Cozic
863d894af1 Tools: Test migration upgrade and downgrade on Joplin Server 2021-12-29 11:54:27 +01:00
Laurent Cozic
a595b8f250 Tools: Fixed git-changelog 2021-12-29 10:48:34 +01:00
Laurent Cozic
a6ff60aa99 Tools: Add doc for CI fix 2021-12-28 20:57:51 +01:00
Laurent Cozic
aaf5d74b94 Tools: Trying to fix CI 2021-12-28 14:52:39 +01:00
Laurent Cozic
c7d0d659a0 Tools: Fixed linter and tsc errors 2021-12-28 14:17:59 +01:00
Laurent Cozic
57e46711f6 Tools: Trying to fix CI 2021-12-28 12:19:09 +01:00
Laurent Cozic
297b992944 Desktop: Right click on image to copy it to clipboard 2021-12-28 12:00:40 +01:00
Laurent Cozic
3b05e7ec5f Tools: Trying to fix CI 2021-12-28 11:43:15 +01:00
Kenichi Kobayashi
b98e64c881 Desktop: Fixes #5850: Editor loses cursor focus when Ctrl+F search is closed (#5919) 2021-12-28 10:26:33 +00:00
Hieu-Thi Luong
46438a5888 Desktop: Better handling of bold text to simplify customisation (#5732) 2021-12-28 09:57:34 +00:00
Laurent
d1e02fd5f0 Server: Allow deleting complete user data (#5824) 2021-12-28 09:55:01 +00:00
Laurent Cozic
b41a3d7f8d Tools: Trying to fix CI 2021-12-28 10:46:58 +01:00
Shing Lyu
88b56a2abd Doc: Add yarn installation instruction (#5920)
Although it obvious to Node.js developers how to install yarn, people from other languages might need a little hint.
2021-12-27 17:42:40 -05:00
Laurent Cozic
c898214e7e Tools: Trying to fix CI 2021-12-27 19:47:17 +01:00
Kenichi Kobayashi
852e6c141b Desktop: Fixes #5549: cannot jump if local search count is one (#5894) 2021-12-27 18:13:09 +00:00
Laurent
fa868297a2 Plugins: Throttle plugins that make too many API calls (#5895) 2021-12-27 18:12:21 +00:00
Laurent Cozic
3744e08335 Plugin Generator release v2.7.3 2021-12-27 18:23:50 +01:00
Laurent Cozic
ea56d020e9 Tools: Improve plugin generator release script 2021-12-27 18:22:19 +01:00
Laurent Cozic
a6174c89a9 Plugin Generator release v2.7.2 2021-12-27 18:10:59 +01:00
Laurent Cozic
c423551723 Plugins: Added ModelType type 2021-12-27 18:10:07 +01:00
Laurent Cozic
3c07241f5b Plugin Generator release v2.7.1 2021-12-27 18:02:54 +01:00
Laurent Cozic
9a7ee239d0 Tools: Fixed npm publish 2021-12-27 18:02:18 +01:00
Laurent Cozic
7b90c586cd Tools: Switched to npm version patch since it is not available in yarn 2021-12-27 18:00:01 +01:00
Laurent Cozic
26883d31da Setup new release 2.7 2021-12-27 17:56:59 +01:00
Laurent Cozic
de569bd995 Plugins: Updated types 2021-12-27 17:46:46 +01:00
Laurent Cozic
83c0c48c83 Plugins: Added "openItem" command 2021-12-27 17:44:53 +01:00
Laurent Cozic
27b62bf129 Plugins: Add utility functions joplin.data.itemType() and joplin.data.resourcePath() 2021-12-27 17:42:43 +01:00
Laurent Cozic
6e6432bfee Plugins: Added revealResourceFile command 2021-12-27 17:40:46 +01:00
Laurent Cozic
d0b969372d Generator: Fixed JS and TS files loading order 2021-12-27 17:39:27 +01:00
Laurent Cozic
960863fb75 Plugins: Add support for joplin.workspace.filterEditorContextMenu to allow dynamically setting editor menu items depending on context 2021-12-27 17:38:21 +01:00
darkdragon-001
941445a238 Doc: Add inofficial Flatpak to installation instructions (#5912) 2021-12-26 22:30:48 +00:00
Helmut K. C. Tessarek
562d687489 All: Translation: Update da_DK.po (thanks ERYpTION) 2021-12-23 18:59:25 -05:00
Laurent Cozic
3f330921d4 Tools: Exclude file to fix linter 2021-12-23 21:21:14 +01:00
Hamish Mcintyre-Bhatty
4ea4021d1b Doc: Add note about pCloud WebDAV not being supported. (#5903) 2021-12-23 14:41:58 +00:00
Laurent Cozic
9ca298f500 Tools: Fixes #5902: Correctly load external resources when bundling desktop app 2021-12-23 12:04:09 +01:00
Laurent Cozic
e65d06fbf5 Tools: Trying to fix copyApplicationAssets race condition 2021-12-22 18:20:50 +01:00
Laurent Cozic
cb3828150e Chore: Remove docs directory, now moved to joplin/website repository 2021-12-22 12:12:21 +01:00
Laurent
cf05daffd4 Delete CNAME 2021-12-22 11:11:18 +00:00
Laurent Cozic
ec2870e3d5 Plugin Repo CLI v2.6.9 2021-12-22 12:03:41 +01:00
Laurent Cozic
af344601ec Plugin repo: Fixing fetch tool 2021-12-22 12:01:51 +01:00
Laurent Cozic
bc9dac2feb Plugin Repo: Add support for source maps 2021-12-22 11:32:56 +01:00
Laurent
780f2ea12b Update CNAME 2021-12-21 19:09:19 +00:00
Laurent Cozic
58d0dc4b0b Tools: Fixed website builder 2021-12-21 19:53:36 +01:00
Laurent Cozic
d458bd115e Fixed share service on CLI 2021-12-21 18:52:27 +01:00
Laurent Cozic
6b6574e7c9 Desktop: Resolves #5893: Expand search field when clicking on search button 2021-12-21 18:29:47 +01:00
Laurent Cozic
1ad5638ade Update translations 2021-12-21 18:16:25 +01:00
Laurent Cozic
32ffbe7d70 Tools: Ignore certain files for translation 2021-12-21 18:10:59 +01:00
Laurent Cozic
e08359f7e0 Tools: Removed no longer needed double-dash and fixed CI 2021-12-21 17:55:30 +01:00
Laurent Cozic
106ce4b09d Tools: Do not clear output of tsc watch 2021-12-21 12:43:12 +01:00
Laurent Cozic
7ca75718c3 Plugin Repo: Simplify publishing script 2021-12-21 12:38:05 +01:00
Laurent Cozic
721d00874f All: Do no duplicate resources when duplicating a note 2021-12-21 11:03:55 +01:00
Laurent Cozic
ab5d799f3d Tools: Maybe more stable with only up to 2 jobs 2021-12-21 11:00:32 +01:00
Laurent Cozic
bbe4d09260 Plugin Repo: Disallow invalid plugin version numbers 2021-12-21 10:51:37 +01:00
Joplin Bot
cf661b454b Doc: Updated Markdown files
Auto-updated using release-website.sh
2021-12-21 00:29:37 +00:00
Laurent Cozic
8f17fb7f71 Tools: Fixed tests 2021-12-20 17:24:45 +01:00
Laurent Cozic
a7a2dfbbd0 Tools: Allow the server clean command to run on Windows 2021-12-20 16:48:40 +01:00
Laurent
7f64fbfd9b Tools: Use Yarn 3 to manage monorepo (#5833) 2021-12-20 15:08:43 +00:00
Laurent Cozic
dea79fa3b7 Merge branch 'release-2.6' into dev 2021-12-20 16:03:14 +01:00
Laurent Cozic
3316b9f880 Doc: Do not shuffle sponsors 2021-12-19 22:13:54 +01:00
Kenichi Kobayashi
8685bfaa18 Doc: Synchronous Scroll documentation/spec (#5883) 2021-12-19 14:35:51 -05:00
Laurent Cozic
ebaf565117 Tools: Automatically update stats every 30 days 2021-12-19 18:26:30 +01:00
Joplin Bot
45f2faa641 Doc: Updated Markdown files
Auto-updated using release-website.sh
2021-12-19 11:33:45 +00:00
1671 changed files with 43729 additions and 348745 deletions

View File

@@ -2,6 +2,7 @@ _mydocs/
_releases/
.git/
.github/
.yarn/
*.min.js
**/commands/index.ts
**/node_modules/
@@ -23,6 +24,7 @@ packages/app-cli/tests/html_to_md
packages/app-cli/tests/logs
packages/app-cli/tests/support
packages/app-cli/tests/sync
packages/app-cli/tests/test data/
packages/app-cli/tests/tmp
packages/app-clipper/content_scripts/JSDOMParser.js
packages/app-clipper/content_scripts/Readability-readerable.js
@@ -34,6 +36,7 @@ packages/app-clipper/popup/config/webpack_config_at_eject_time.js
packages/app-clipper/popup/config/webpack.config.js
packages/app-clipper/popup/node_modules
packages/app-clipper/popup/scripts/build.js
packages/app-desktop/build/
packages/app-desktop/dist
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/plugins/lists.js
packages/app-desktop/gui/NoteEditor/NoteBody/TinyMCE/supportedLocales.js
@@ -41,6 +44,7 @@ packages/app-desktop/locales
packages/app-desktop/node_modules
packages/app-desktop/packageInfo.js
packages/app-desktop/services/electron-context-menu.js
packages/app-desktop/vendor/lib/
packages/app-mobile/android
packages/app-mobile/components/NoteEditor/CodeMirror.bundle.js
packages/app-mobile/ios
@@ -48,6 +52,8 @@ packages/app-mobile/lib/rnInjectedJs/
packages/app-mobile/locales
packages/app-mobile/node_modules
packages/app-mobile/pluginAssets/
packages/electron-process-manager/dist/
packages/electron-process-manager/src/ui/
packages/fork-*
packages/htmlpack/dist/
packages/lib/assets/
@@ -294,6 +300,9 @@ packages/app-desktop/gui/MainScreen/commands/openFolder.js.map
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.d.ts
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.js
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.js.map
packages/app-desktop/gui/MainScreen/commands/openItem.d.ts
packages/app-desktop/gui/MainScreen/commands/openItem.js
packages/app-desktop/gui/MainScreen/commands/openItem.js.map
packages/app-desktop/gui/MainScreen/commands/openNote.d.ts
packages/app-desktop/gui/MainScreen/commands/openNote.js
packages/app-desktop/gui/MainScreen/commands/openNote.js.map
@@ -309,6 +318,9 @@ packages/app-desktop/gui/MainScreen/commands/renameFolder.js.map
packages/app-desktop/gui/MainScreen/commands/renameTag.d.ts
packages/app-desktop/gui/MainScreen/commands/renameTag.js
packages/app-desktop/gui/MainScreen/commands/renameTag.js.map
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.d.ts
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.js
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.js.map
packages/app-desktop/gui/MainScreen/commands/search.d.ts
packages/app-desktop/gui/MainScreen/commands/search.js
packages/app-desktop/gui/MainScreen/commands/search.js.map
@@ -723,6 +735,9 @@ packages/app-desktop/services/commands/stateToWhenClauseContext.js.map
packages/app-desktop/services/commands/types.d.ts
packages/app-desktop/services/commands/types.js
packages/app-desktop/services/commands/types.js.map
packages/app-desktop/services/plugins/BackOffHandler.d.ts
packages/app-desktop/services/plugins/BackOffHandler.js
packages/app-desktop/services/plugins/BackOffHandler.js.map
packages/app-desktop/services/plugins/PlatformImplementation.d.ts
packages/app-desktop/services/plugins/PlatformImplementation.js
packages/app-desktop/services/plugins/PlatformImplementation.js.map
@@ -1509,9 +1524,6 @@ packages/lib/services/plugins/api/types.js.map
packages/lib/services/plugins/reducer.d.ts
packages/lib/services/plugins/reducer.js
packages/lib/services/plugins/reducer.js.map
packages/lib/services/plugins/sandboxProxy.d.ts
packages/lib/services/plugins/sandboxProxy.js
packages/lib/services/plugins/sandboxProxy.js.map
packages/lib/services/plugins/utils/createViewHandle.d.ts
packages/lib/services/plugins/utils/createViewHandle.js
packages/lib/services/plugins/utils/createViewHandle.js.map
@@ -1539,6 +1551,12 @@ packages/lib/services/plugins/utils/validatePluginId.js.map
packages/lib/services/plugins/utils/validatePluginId.test.d.ts
packages/lib/services/plugins/utils/validatePluginId.test.js
packages/lib/services/plugins/utils/validatePluginId.test.js.map
packages/lib/services/plugins/utils/validatePluginVersion.d.ts
packages/lib/services/plugins/utils/validatePluginVersion.js
packages/lib/services/plugins/utils/validatePluginVersion.js.map
packages/lib/services/plugins/utils/validatePluginVersion.test.d.ts
packages/lib/services/plugins/utils/validatePluginVersion.test.js
packages/lib/services/plugins/utils/validatePluginVersion.test.js.map
packages/lib/services/rest/Api.d.ts
packages/lib/services/rest/Api.js
packages/lib/services/rest/Api.js.map
@@ -1941,9 +1959,6 @@ packages/tools/generate-images.js.map
packages/tools/git-changelog.d.ts
packages/tools/git-changelog.js
packages/tools/git-changelog.js.map
packages/tools/lerna-add.d.ts
packages/tools/lerna-add.js
packages/tools/lerna-add.js.map
packages/tools/release-android.d.ts
packages/tools/release-android.js
packages/tools/release-android.js.map
@@ -1956,6 +1971,9 @@ packages/tools/release-electron.js.map
packages/tools/release-ios.d.ts
packages/tools/release-ios.js
packages/tools/release-ios.js.map
packages/tools/release-plugin-repo-cli.d.ts
packages/tools/release-plugin-repo-cli.js
packages/tools/release-plugin-repo-cli.js.map
packages/tools/release-server.d.ts
packages/tools/release-server.js
packages/tools/release-server.js.map

View File

@@ -1,5 +1,10 @@
#!/bin/bash
# We want the script to stop as soon as an error is found. Otherwise if there's
# an error during `yarn install` for example, it's also going to throw millions
# of errors in test units, which makes debugging difficult.
set -e
# =============================================================================
# Setup environment variables
# =============================================================================
@@ -37,6 +42,7 @@ echo "GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME"
echo "GITHUB_REF=$GITHUB_REF"
echo "RUNNER_OS=$RUNNER_OS"
echo "GIT_TAG_NAME=$GIT_TAG_NAME"
echo "BUILD_SEQUENCIAL=$BUILD_SEQUENCIAL"
echo "IS_CONTINUOUS_INTEGRATION=$IS_CONTINUOUS_INTEGRATION"
echo "IS_PULL_REQUEST=$IS_PULL_REQUEST"
@@ -46,13 +52,14 @@ echo "IS_MACOS=$IS_MACOS"
echo "Node $( node -v )"
echo "Npm $( npm -v )"
echo "Yarn $( yarn -v )"
# =============================================================================
# Install packages
# =============================================================================
cd "$ROOT_DIR"
npm install
yarn install
# =============================================================================
# Run test units. Only do it for pull requests and dev branch because we don't
@@ -78,7 +85,7 @@ if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
#
# https://stackoverflow.com/questions/38558989
export NODE_OPTIONS="--max-old-space-size=4096"
npm run test-ci
yarn run test-ci
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
@@ -93,7 +100,7 @@ fi
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
echo "Step: Running linter..."
npm run linter-ci ./
yarn run linter-ci ./
testResult=$?
if [ $testResult -ne 0 ]; then
exit $testResult
@@ -166,12 +173,12 @@ cd "$ROOT_DIR/packages/app-desktop"
if [[ $GIT_TAG_NAME = v* ]]; then
echo "Step: Building and publishing desktop application..."
USE_HARD_LINKS=false npm run dist
USE_HARD_LINKS=false yarn run dist
elif [[ $GIT_TAG_NAME = server-v* ]] && [[ $IS_LINUX = 1 ]]; then
echo "Step: Building Docker Image..."
cd "$ROOT_DIR"
npm run buildServerDocker -- --tag-name $GIT_TAG_NAME --push-images
yarn run buildServerDocker --tag-name $GIT_TAG_NAME --push-images
else
echo "Step: Building but *not* publishing desktop application..."
USE_HARD_LINKS=false npm run dist -- --publish=never
USE_HARD_LINKS=false yarn run dist --publish=never
fi

View File

@@ -49,6 +49,11 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
# Login to Docker only if we're on a server release tag. If we run this on
# a pull request it will fail because the PR doesn't have access to
@@ -69,6 +74,7 @@ jobs:
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
run: |
"${GITHUB_WORKSPACE}/.github/scripts/run_ci.sh"
@@ -79,7 +85,48 @@ jobs:
CSC_LINK: ${{ secrets.WINDOWS_CSC_LINK }}
GH_TOKEN: ${{ secrets.GH_TOKEN }}
IS_CONTINUOUS_INTEGRATION: 1
BUILD_SEQUENCIAL: 1
run: |
npm install
yarn install
cd packages/app-desktop
npm run dist
yarn run dist
ServerDockerImage:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- name: Install Docker Engine
run: |
sudo apt-get install -y apt-transport-https
sudo apt-get install -y ca-certificates
sudo apt-get install -y curl
sudo apt-get install -y gnupg
sudo apt-get install -y lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update || true
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
- name: Install Yarn
run: |
# https://yarnpkg.com/getting-started/install
corepack enable
- name: Build Docker Image
env:
BUILD_SEQUENCIAL: 1
run: |
yarn install
yarn run buildServerDocker --tag-name server-v0.0.0

35
.gitignore vendored
View File

@@ -51,6 +51,17 @@ lerna-debug.log
.env
docs/**/*.mustache
# Yarn stuff
# https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
packages/app-cli/app/LinkSelector.d.ts
packages/app-cli/app/LinkSelector.js
@@ -277,6 +288,9 @@ packages/app-desktop/gui/MainScreen/commands/openFolder.js.map
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.d.ts
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.js
packages/app-desktop/gui/MainScreen/commands/openFolderDialog.js.map
packages/app-desktop/gui/MainScreen/commands/openItem.d.ts
packages/app-desktop/gui/MainScreen/commands/openItem.js
packages/app-desktop/gui/MainScreen/commands/openItem.js.map
packages/app-desktop/gui/MainScreen/commands/openNote.d.ts
packages/app-desktop/gui/MainScreen/commands/openNote.js
packages/app-desktop/gui/MainScreen/commands/openNote.js.map
@@ -292,6 +306,9 @@ packages/app-desktop/gui/MainScreen/commands/renameFolder.js.map
packages/app-desktop/gui/MainScreen/commands/renameTag.d.ts
packages/app-desktop/gui/MainScreen/commands/renameTag.js
packages/app-desktop/gui/MainScreen/commands/renameTag.js.map
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.d.ts
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.js
packages/app-desktop/gui/MainScreen/commands/revealResourceFile.js.map
packages/app-desktop/gui/MainScreen/commands/search.d.ts
packages/app-desktop/gui/MainScreen/commands/search.js
packages/app-desktop/gui/MainScreen/commands/search.js.map
@@ -706,6 +723,9 @@ packages/app-desktop/services/commands/stateToWhenClauseContext.js.map
packages/app-desktop/services/commands/types.d.ts
packages/app-desktop/services/commands/types.js
packages/app-desktop/services/commands/types.js.map
packages/app-desktop/services/plugins/BackOffHandler.d.ts
packages/app-desktop/services/plugins/BackOffHandler.js
packages/app-desktop/services/plugins/BackOffHandler.js.map
packages/app-desktop/services/plugins/PlatformImplementation.d.ts
packages/app-desktop/services/plugins/PlatformImplementation.js
packages/app-desktop/services/plugins/PlatformImplementation.js.map
@@ -1492,9 +1512,6 @@ packages/lib/services/plugins/api/types.js.map
packages/lib/services/plugins/reducer.d.ts
packages/lib/services/plugins/reducer.js
packages/lib/services/plugins/reducer.js.map
packages/lib/services/plugins/sandboxProxy.d.ts
packages/lib/services/plugins/sandboxProxy.js
packages/lib/services/plugins/sandboxProxy.js.map
packages/lib/services/plugins/utils/createViewHandle.d.ts
packages/lib/services/plugins/utils/createViewHandle.js
packages/lib/services/plugins/utils/createViewHandle.js.map
@@ -1522,6 +1539,12 @@ packages/lib/services/plugins/utils/validatePluginId.js.map
packages/lib/services/plugins/utils/validatePluginId.test.d.ts
packages/lib/services/plugins/utils/validatePluginId.test.js
packages/lib/services/plugins/utils/validatePluginId.test.js.map
packages/lib/services/plugins/utils/validatePluginVersion.d.ts
packages/lib/services/plugins/utils/validatePluginVersion.js
packages/lib/services/plugins/utils/validatePluginVersion.js.map
packages/lib/services/plugins/utils/validatePluginVersion.test.d.ts
packages/lib/services/plugins/utils/validatePluginVersion.test.js
packages/lib/services/plugins/utils/validatePluginVersion.test.js.map
packages/lib/services/rest/Api.d.ts
packages/lib/services/rest/Api.js
packages/lib/services/rest/Api.js.map
@@ -1924,9 +1947,6 @@ packages/tools/generate-images.js.map
packages/tools/git-changelog.d.ts
packages/tools/git-changelog.js
packages/tools/git-changelog.js.map
packages/tools/lerna-add.d.ts
packages/tools/lerna-add.js
packages/tools/lerna-add.js.map
packages/tools/release-android.d.ts
packages/tools/release-android.js
packages/tools/release-android.js.map
@@ -1939,6 +1959,9 @@ packages/tools/release-electron.js.map
packages/tools/release-ios.d.ts
packages/tools/release-ios.js
packages/tools/release-ios.js.map
packages/tools/release-plugin-repo-cli.d.ts
packages/tools/release-plugin-repo-cli.js
packages/tools/release-plugin-repo-cli.js.map
packages/tools/release-server.d.ts
packages/tools/release-server.js
packages/tools/release-server.js.map

File diff suppressed because one or more lines are too long

768
.yarn/releases/yarn-3.1.1.cjs vendored Executable file

File diff suppressed because one or more lines are too long

9
.yarnrc.yml Normal file
View File

@@ -0,0 +1,9 @@
nmHoistingLimits: workspaces
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.1.1.cjs

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@@ -1,6 +1,6 @@
# Building the applications
The Joplin source code is hosted on a [monorepo](https://en.wikipedia.org/wiki/Monorepo) managed by Lerna. The usage of Lerna is mostly transparent as the needed commands have been moved to the root package.json and thus are invoked for example when running `npm install` or `npm run watch`. The main thing to know about Lerna is that it links the packages in the monorepo using `npm link`, so if you check the node_modules directory you will see links instead of actual directories for certain packages. This is something to keep in mind as these links can cause issues in some cases.
The Joplin source code is hosted on a [monorepo](https://en.wikipedia.org/wiki/Monorepo) and is managed using Yarn workspaces (as well as Lerna for publishing the packages).
The list of the main sub-packages is below:
@@ -18,30 +18,31 @@ There are also a few forks of existing packages under the "fork-*" name.
## Required dependencies
- Install node 14+ - https://nodejs.org/en/
- Install node 16+ - https://nodejs.org/en/
- [Enable yarn](https://yarnpkg.com/getting-started/install): `corepack enable`
- macOS: Install Cocoapods - `brew install cocoapods`
- Windows: Install Windows Build Tools - `npm install -g windows-build-tools --vs2015`
- Windows: Install Windows Build Tools - `yarn install -g windows-build-tools --vs2015`
- Linux: Install dependencies - `sudo apt install build-essential libnss3 libsecret-1-dev python rsync`
## Building
Before doing anything else, from the root of the project, run:
npm install
yarn install
Then you can test the various applications:
## Testing the desktop application
cd packages/app-desktop
npm start
yarn start
You can also run it under WSL 2. To do so, [follow these instructions](https://www.beekeeperstudio.io/blog/building-electron-windows-ubuntu-wsl2) to setup your environment.
## Testing the Terminal application
cd packages/app-cli
npm start
yarn start
## Testing the Mobile application
@@ -54,7 +55,7 @@ Then, for **Android**:
On **iOS**, open the file `ios/Joplin.xcworkspace` on XCode and run the app from there.
Normally the **bundler** should start automatically with the application. If it doesn't, run `npm start` from `packages/app-mobile`.
Normally the **bundler** should start automatically with the application. If it doesn't, run `yarn start` from `packages/app-mobile`.
## Building the clipper
@@ -67,23 +68,15 @@ To test the extension please refer to the relevant pages for each browser: [Fire
To make changes to the application, you'll need to rebuild any TypeScript file you've changed. The simplest way to do this is to watch for changes from the root of the project. Simply run this command, and it should take care of the rest:
npm run watch
yarn run watch
Running `npm run tsc` would have the same effect, but without watching.
Running `yarn run tsc` would have the same effect, but without watching.
## Running an application with additional parameters
You can specify additional parameters when running the desktop or CLI application. To do so, add `--` to the `npm start` command, followed by your flags. For example:
You can specify additional parameters when running the desktop or CLI application. To do so, add `--` to the `yarn start` command, followed by your flags. For example:
npm start -- --debug
## Adding a new dependency
Since Joplin uses Lerna, adding a new dependency should not be done using `npm i -s ...`. Instead you should use the `lerna add` command, which will take care of adding the package while handling the linked packages correctly. For example, to add the package "leftpad" to the "app-desktop" sub-package, you would run:
npx lerna add leftpad --scope=@joplin/app-desktop
Note that you should most likely always specify a scope because otherwise it will add the package to all the sub-packages.
yarn start --debug
## TypeScript
@@ -95,14 +88,14 @@ If you'd like to auto-reload the desktop app on changes rather than having to qu
```sh
cd packages/app-desktop
watchman-make -p '**/*.js' '**/*.jsx' --run "npm start"
watchman-make -p '**/*.js' '**/*.jsx' --run "yarn start"
```
It still requires you to quit the application each time you want it to rebuild, but at least you don't have to re-run `"npm start"` each time. Here's what the workflow loop looks like in practice:
It still requires you to quit the application each time you want it to rebuild, but at least you don't have to re-run `"yarn start"` each time. Here's what the workflow loop looks like in practice:
1. Edit and save files in your text editor.
2. Switch to the Electron app and <kbd>cmd</kbd>+<kbd>Q</kbd> to quit it.
3. `watchman` immediately restarts the app for you (whereas usually you'd have to switch back to the terminal, type `"npm start"`, and hit enter).
3. `watchman` immediately restarts the app for you (whereas usually you'd have to switch back to the terminal, type `"yarn start"`, and hit enter).
# Troubleshooting

View File

@@ -31,12 +31,12 @@ Joplin is available in multiple languages thanks to the help of its users. You c
If you want to start contributing to the project's code, please follow these guidelines before creating a pull request:
- Explain WHY you want to add this change. Explain it inside the pull request and you may link to an issue for additional information, but the PR should gives a clear overview of why you want to add this.
- Explain WHY you want to add this change. Explain it inside the pull request and you may link to an issue for additional information, but the PR should give a clear overview of why you want to add this.
- Bug fixes are always welcome. Start by reviewing the [list of bugs](https://github.com/laurent22/joplin/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
- A good way to easily start contributing is to pick and work on a [good first issue](https://github.com/laurent22/joplin/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). We try to make these issues as clear as possible and provide basic info on how the code should be changed, and if something is unclear feel free to ask for more information on the issue.
- 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.
- **Changes that will consist of more than 50 lines of code should be discussed on 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, make sure it still works 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.
- Pull requests that make address multiple issues will most likely stall and eventually be closed. This is because we might be fine with one of the changes but not with others and untangling that kind of pull request is too much hassle both for maintainers and the person who submitted it. So most of the time someone gives up and the PR gets closed. So please keep the pull request focused on one issue.
@@ -44,7 +44,7 @@ Building the apps is relatively easy - please [see the build instructions](https
## Coding style
Coding style is enforced by a pre-commit hook that runs eslint. This hook is installed whenever running `npm install` on any of the application directory. If for some reason the pre-commit hook didn't get installed, you can manually install it by running `npm install` at the root of the repository.
Coding style is enforced by a pre-commit hook that runs eslint. This hook is installed whenever running `yarn install` on any of the application directory. If for some reason the pre-commit hook didn't get installed, you can manually install it by running `yarn install` at the root of the repository.
For new React components, please use [React Hooks](https://reactjs.org/docs/hooks-intro.html). For new code in general, please use TypeScript. Even if you are modifying a file that was originally in JavaScript you should ideally convert it first to TypeScript before modifying it. Doing so is relatively easy and it helps maintain code quality.
@@ -61,26 +61,26 @@ When submitting a pull request for a new feature or a bug fix, please add automa
The tests are under packages/app-cli/tests. To get them running, you first need to build the CLI app:
```sh
npm install
yarn install
cd packages/app-cli
```
To run all the test units:
```sh
npm test
yarn test
```
To run just one particular file:
```sh
npm test -- --filter=markdownUtils # Don't add the .js extension
yarn test --filter=markdownUtils # Don't add the .js extension
```
To filter tests. For example, to run all the test units that contain "should handle conflict" in their description:
```sh
npm test -- --filter="should handle conflict"
yarn test --filter="should handle conflict"
```
## About abandoned pull requests

View File

@@ -6,7 +6,7 @@ Various scripts are provided to deploy the Joplin applications, scripts and tool
Before new releases are created, all version numbers must be updated. This is done using the `setupNewRelease` script and passing it the new major.minor version number. For example:
npm run setupNewRelease -- 1.8
yarn run setupNewRelease 1.8
Patch numbers are going to be incremented automatically when releasing each individual package.
@@ -14,13 +14,13 @@ Patch numbers are going to be incremented automatically when releasing each indi
The desktop application is built for Windows, macOS and Linux via continuous integration, by pushing a version tag to GitHub. The process is automated using:
npm run releaseDesktop
yarn run releaseDesktop
## Android application
The app is built and upload to GitHub using:
npm run releaseAndroid -- --type=prerelease
yarn run releaseAndroid --type=prerelease
The "type" parameter can be either "release" or "prerelease"
@@ -32,7 +32,7 @@ It must be built and released manually using XCode.
Unlike the mobile or desktop application, the CLI app doesn't bundle its dependencies and is always installed from source. For that reason, all its `@joplin` dependencies must be deployed publicly first. This is done using:
npm run publishAll
yarn run publishAll
This is going to publish all the Joplin libraries, such as `@joplin/lib`, `@joplin/tools`, etc.
@@ -52,26 +52,28 @@ Then in `app-cli/package.json`, all `@joplin` dependencies and devdependencies m
Finally, to release the actual app, run:
npm run releaseCli
yarn run releaseCli
## Joplin Server
Run:
npm run releaseServer
yarn run releaseServer
## Web clipper
Run:
npm run releaseClipper
yarn run releaseClipper
## Plugin generator
First the types should generally be updated, using `./updateTypes.sh`. Then run:
npm run releasePluginGenerator
yarn run releasePluginGenerator
## Plugin Repo Cli
Since it has dependencies to the `@joplin` packages, it is released when running `npm run publishAll`
This tool is packaged using Webpack so it can be released with a single command:
yarn run releasePluginRepoCli

View File

@@ -1,5 +1,3 @@
# https://versatile.nl/blog/deploying-lerna-web-apps-with-docker
FROM node:16-bullseye
RUN apt-get update \
@@ -7,8 +5,12 @@ RUN apt-get update \
python \
&& rm -rf /var/lib/apt/lists/*
# Enables Yarn
RUN corepack enable
RUN echo "Node: $(node --version)"
RUN echo "Npm: $(npm --version)"
RUN echo "Yarn: $(yarn --version)"
ARG user=joplin
@@ -26,7 +28,12 @@ RUN mkdir /home/$user/logs
# this point)
COPY --chown=$user:$user package*.json ./
RUN npm install --ignore-scripts
COPY --chown=$user:$user .yarn ./.yarn
COPY --chown=$user:$user .yarnrc.yml .
COPY --chown=$user:$user yarn.lock .
COPY --chown=$user:$user gulpfile.js .
RUN yarn install --inline-builds --mode=skip-build
# To take advantage of the Docker cache, we first copy all the package.json
# and package-lock.json files, as they rarely change, and then bootstrap
@@ -40,11 +47,11 @@ RUN npm install --ignore-scripts
# prevent certain sub-packages, such as sqlite3, from being built
COPY --chown=$user:$user packages/fork-sax/package*.json ./packages/fork-sax/
COPY --chown=$user:$user packages/fork-uslug/package*.json ./packages/fork-uslug/
COPY --chown=$user:$user packages/htmlpack/package*.json ./packages/htmlpack/
COPY --chown=$user:$user packages/renderer/package*.json ./packages/renderer/
COPY --chown=$user:$user packages/tools/package*.json ./packages/tools/
COPY --chown=$user:$user packages/lib/package*.json ./packages/lib/
COPY --chown=$user:$user lerna.json .
COPY --chown=$user:$user tsconfig.json .
# The following have postinstall scripts so we need to copy all the files.
@@ -53,33 +60,36 @@ COPY --chown=$user:$user tsconfig.json .
COPY --chown=$user:$user packages/turndown ./packages/turndown
COPY --chown=$user:$user packages/turndown-plugin-gfm ./packages/turndown-plugin-gfm
COPY --chown=$user:$user packages/fork-htmlparser2 ./packages/fork-htmlparser2
COPY --chown=$user:$user packages/server/package*.json ./packages/server/
# Then bootstrap only, without compiling the TypeScript files
RUN npm run bootstrap
# We have a separate step for the server files because they are more likely to
# change.
COPY --chown=$user:$user packages/server/package*.json ./packages/server/
RUN npm run bootstrapServerOnly
RUN yarn install --inline-builds --mode=skip-build
# Now copy the source files. Put lib and server last as they are more likely to change.
COPY --chown=$user:$user packages/fork-sax ./packages/fork-sax
COPY --chown=$user:$user packages/fork-uslug ./packages/fork-uslug
COPY --chown=$user:$user packages/htmlpack ./packages/htmlpack
COPY --chown=$user:$user packages/renderer ./packages/renderer
COPY --chown=$user:$user packages/tools ./packages/tools
COPY --chown=$user:$user packages/lib ./packages/lib
COPY --chown=$user:$user packages/server ./packages/server
# Finally build everything, in particular the TypeScript files.
# Finally build everything, in particular the TypeScript files. We can't just
# run `yarn run build` because that wouldn't run the postinstall scripts in
# dependencies (for example the sqlite3 native module would not be built). So
# instead we run `yarn install`, which is going to install again all the
# packages (but because it's already done it should be fast), and then run the
# postinstall scripts, as well as build scripts.
RUN npm run build
RUN BUILD_SEQUENCIAL=1 yarn install --inline-builds
ENV RUNNING_IN_DOCKER=1
EXPOSE ${APP_PORT}
# Not clear what's the equivalent of "--prefix" in Yarn 3, so keep using npm for
# now.
CMD [ "npm", "--prefix", "packages/server", "start" ]
# Build-time metadata

View File

@@ -219,6 +219,7 @@ then
Type=Application
Categories=Office;
MimeType=x-scheme-handler/joplin;
X-GNOME-SingleWindow=true
EOF
# Update application icons

10
LICENSE
View File

@@ -1,9 +1,9 @@
All code in this repository is licensed under the MIT License **unless a
directory contains a LICENSE file**, in which case that LICENSE file applies to
the code in that sub-directory.
directory contains a LICENSE or LICENSE.md file**, in which case that file
applies to the code in that sub-directory.
For example, packages/fork-sax contains a ISC LICENSE file, thus all code under
the packages/fork-sax directory is licensed under ISC.
For example, packages/server contains a LICENSE.md file, thus all code under the
packages/server directory is licensed under that license.
For example, packages/app-cli does NOT contain a LICENSE file, thus all code
under that directory is licensed under the default license, which is MIT.
@@ -20,7 +20,7 @@ icons please contact the author in order to get a permission.
MIT License
Copyright (c) 2016-2021 Laurent Cozic
Copyright (c) 2016-2022 Laurent Cozic
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@@ -22,11 +22,11 @@ Three types of applications are available: for **desktop** (Windows, macOS and L
Operating System | Download
---|---
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.9/Joplin-Setup-2.6.9.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.9/Joplin-2.6.9.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.9/Joplin-2.6.9.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-Setup-2.6.10.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-2.6.10.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/Joplin-2.6.10.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.6.9/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v2.6.10/JoplinPortable.exe'>Portable version</a>. The [portable application](https://en.wikipedia.org/wiki/Portable_application) allows installing the software on a portable device such as a USB key. Simply copy the file JoplinPortable.exe in any directory on that USB key ; the application will then create a directory called "JoplinProfile" next to the executable file.
**On Linux**, the recommended way is to use the following installation script as it will handle the desktop icon too:
@@ -36,7 +36,7 @@ Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.6.9/Jo
Operating System | Download | Alt. Download
---|---|---
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.8/joplin-v2.6.8.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.8/joplin-v2.6.8-32bit.apk)
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.9/joplin-v2.6.9.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.6.9/joplin-v2.6.9-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://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeIOS.png'/></a> | -
## Terminal application
@@ -56,6 +56,7 @@ There are other ways to install the terminal application. However, they are not
Operating system | Method
-----------------|----------------
Arch Linux | An Arch Linux package is available [here](https://aur.archlinux.org/packages/joplin/). To install it, use an AUR wrapper such as yay: `yay -S joplin`. Both the CLI tool (type `joplin`) and desktop app (type `joplin-desktop`) are packaged. You can also install a compiled version with the [chaotic-aur](https://wiki.archlinux.org/index.php/Unofficial_user_repositories#chaotic-aur) repository. For support, please go to the [GitHub repo](https://github.com/masterkorp/joplin-pkgbuild). If you are interested in [pre-release](https://joplinapp.org/prereleases/) you have [joplin-beta](https://aur.archlinux.org/packages/joplin-beta).
Flatpak | A Flatpak is available on [Flathub](https://flathub.org/apps/details/net.cozic.joplin_desktop). To install it, run `flatpak install net.cozic.joplin_desktop` after [setting up Flathub](https://flatpak.org/setup/). GUI software managers on most distros support Flatpak installation.
## Web Clipper
@@ -127,6 +128,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
- [End-to-end encryption spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/e2ee.md)
- [Note History spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/history.md)
- [Sync Lock spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_lock.md)
- [Synchronous Scroll spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/sync_scroll.md)
- [Plugin Architecture spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/plugins.md)
- [Search Sorting spec](https://github.com/laurent22/joplin/blob/dev/readme/spec/search_sorting.md)
- [Server: File URL Format](https://github.com/laurent22/joplin/blob/dev/readme/spec/server_file_url_format.md)
@@ -302,6 +304,7 @@ To add a **Bucket Policy** from the AWS S3 Web Console, navigate to the **Permis
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:PutObject"
@@ -536,11 +539,11 @@ Current translations:
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 89%
<img src="https://joplinapp.org/images/flags/country-4x3/dk.png" width="16px"/> | Dansk (Danmark) | [da_DK](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/da_DK.po) | ERYpTION | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [MrKanister](mailto:s.robin@tutanota.de) | 97%
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [MrKanister](mailto:s.robin@tutanota.de) | 99%
<img src="https://joplinapp.org/images/flags/country-4x3/ee.png" width="16px"/> | Eesti Keel (Eesti) | [et_EE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/et_EE.po) | | 51%
<img src="https://joplinapp.org/images/flags/country-4x3/gb.png" width="16px"/> | English (United Kingdom) | [en_GB](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_GB.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/us.png" width="16px"/> | English (United States of America) | [en_US](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/en_US.po) | | 100%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/es.png" width="16px"/> | Español (España) | [es_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/es_ES.po) | [Francisco Mora](mailto:francisco.m.collao@gmail.com) | 99%
<img src="https://joplinapp.org/images/flags/esperanto.png" width="16px"/> | Esperanto | [eo](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eo.po) | Marton Paulo | 30%
<img src="https://joplinapp.org/images/flags/country-4x3/fi.png" width="16px"/> | Finnish (Suomi) | [fi_FI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fi_FI.po) | mrkaato | 93%
<img src="https://joplinapp.org/images/flags/country-4x3/fr.png" width="16px"/> | Français (France) | [fr_FR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fr_FR.po) | Laurent Cozic | 100%

View File

@@ -1,5 +1,5 @@
# For development this compose file starts the database only. The app can then
# be started using `npm run start-dev`, which is useful for development, because
# be started using `yarn run start-dev`, which is useful for development, because
# it means the app Docker file doesn't have to be rebuilt on each change.
version: '3'

View File

@@ -1 +0,0 @@
joplinapp.org

View File

@@ -1,396 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/get_started/plugins.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Getting started with plugin development | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-plugins">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Getting started with plugin development<a name="getting-started-with-plugin-development" href="#getting-started-with-plugin-development" class="heading-anchor">🔗</a></h1>
<p>In this article you will learn the basic steps to build and test a plugin in Joplin.</p>
<h2>Setting up your environment<a name="setting-up-your-environment" href="#setting-up-your-environment" class="heading-anchor">🔗</a></h2>
<p>First you need to setup your environment:</p>
<ul>
<li>Make sure you have <a href="https://nodejs.org/">Node.js</a> and <a href="https://git-scm.com">git</a> installed.</li>
<li>Install <a href="https://joplinapp.org/">Joplin</a></li>
</ul>
<p>But first install <a href="https://yeoman.io/">Yeoman</a> and the <a href="https://github.com/laurent22/joplin/tree/dev/packages/generator-joplin">Joplin Plugin Generator</a>:</p>
<pre><code>npm install -g yo generator-joplin
</code></pre>
<p>Then, in the directory where you plan to develop the plugin, run:</p>
<pre><code>yo joplin
</code></pre>
<p>This will generate the basic scaffolding of the plugin. At the root of it, there are a number of configuration files which you normally won't need to change. Then the <code>src/</code> directory will contain your code. By default, the project uses TypeScript, but you are free to use plain JavaScript too - eventually the project is compiled to plain JS in any case.</p>
<p>The <code>src/</code> directory also contains a <a href="/api/references/plugin_manifest/">manifest.json</a> file, which contains the various information about the plugin that was set in the initial generation of the scaffolding, such as its name, homepage URL, etc. You can edit this at any time, but editing it after it has been published may cause users to have to download it again.</p>
<h2>Setup Source Control<a name="setup-source-control" href="#setup-source-control" class="heading-anchor">🔗</a></h2>
<p>In your plugin directory, run:</p>
<pre><code>git init
</code></pre>
<p>This will setup source control.</p>
<h2>Run Joplin in Development Mode<a name="run-joplin-in-development-mode" href="#run-joplin-in-development-mode" class="heading-anchor">🔗</a></h2>
<p>You should test your plugin in <a href="/api/references/development_mode/">Development Mode</a>. Doing so means that Joplin will run using a different profile, so you can experiment with the plugin without risking to accidentally change or delete your data.</p>
<h2>Building the plugin<a name="building-the-plugin" href="#building-the-plugin" class="heading-anchor">🔗</a></h2>
<p>From the scaffolding, <code>src/index.ts</code> now contains the basic code for a Hello World plugin.</p>
<p>Two things to note:</p>
<ol>
<li>It contains a call to <a href="https://joplinapp.org/api/references/plugin_api/classes/joplinplugins.html#register">joplin.plugins.register</a>. All plugins call this to register the plugin in the app.</li>
<li>An <code>onStart()</code> event handler method, which is called when the plugin starts.</li>
</ol>
<p>To try this basic plugin, compile the app by running the following from the root of the project:</p>
<pre><code>npm run dist
</code></pre>
<p>Doing so should compile all the files into the <code>dist/</code> directory. This is where Joplin will load the plugin.</p>
<h2>Install the plugin<a name="install-the-plugin" href="#install-the-plugin" class="heading-anchor">🔗</a></h2>
<p>Open Joplin <strong>Configuration &gt; Plugins</strong> section. Under Advanced Settings, add the plugin path in the <strong>Development plugins</strong> text field.<br>
This should be the path to your main plugin directory, i.e. <code>path/to/your/root/plugin/directory</code>.</p>
<h2>Test the Plugin, Hello World!<a name="test-the-plugin-hello-world" href="#test-the-plugin-hello-world" class="heading-anchor">🔗</a></h2>
<p>Restart the Development app from the command line/terminal, and Joplin should load the plugin and execute its <code>onStart</code> handler. If all went well you should see the test message in the plugin console: &quot;Hello world. Test plugin started!&quot;. You will also be able to see the information from the manifest in the <strong>Settings &gt; Plugins</strong></p>
<h1>Next steps<a name="next-steps" href="#next-steps" class="heading-anchor">🔗</a></h1>
<p>Great, you now have the basics of a working plugin!</p>
<ul>
<li>Start the <a href="/api/tutorials/toc_plugin/">plugin tutorial</a> to learn how to use the plugin API.</li>
<li>See what the plugin API supports, <a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API reference</a>.</li>
<li>For plugin feature ideas, see this thread: <a href="https://discourse.joplinapp.org/t/any-suggestions-on-what-plugins-could-be-created/9479">https://discourse.joplinapp.org/t/any-suggestions-on-what-plugins-could-be-created/9479</a></li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,374 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/overview.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/overview.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Extending Joplin | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-overview">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Extending Joplin<a name="extending-joplin" href="#extending-joplin" class="heading-anchor">🔗</a></h1>
<p>Joplin provides a number of extension points to allow third-party applications to access its data, or to develop plugins.</p>
<p>The two main extension points are:</p>
<h2>Data API<a name="data-api" href="#data-api" class="heading-anchor">🔗</a></h2>
<p>The <a href="/api/references/rest_api/">data API</a> provides access to Joplin data to external applications. It is possible, using standard HTTP calls, to create, modify or delete notes, notebooks, tags, etc. as well as attach files to notes and retrieve these files.</p>
<p>This is for example how the web clipper communicates with Joplin, and this is most likely what you will need if you have an external application that needs access to Joplin data.</p>
<p>To get started with the data API, <a href="/api/references/rest_api/">check the documentation</a>.</p>
<h2>Plugin API<a name="plugin-api" href="#plugin-api" class="heading-anchor">🔗</a></h2>
<p>With plugins you can directly modify Joplin by adding new features to the application. Using this API, you can:</p>
<ul>
<li>Access notes, folders, etc. via the data API</li>
<li>Add a view to display custom data using HTML/CSS/JS</li>
<li>Create a dialog to display information and get input from the user</li>
<li>Create a new command and associate a toolbar button or menu item with it</li>
<li>Get access to the note currently being edited and modify it</li>
<li>Listen to various events and run code when they happen</li>
<li>Hook into the application to set additional options and customise Joplin's behaviour</li>
<li>Create a module to export or import data into Joplin</li>
<li>Define new settings and setting sections, and get/set them from the plugin</li>
<li>Create a new Markdown plugin to render custom markup.</li>
<li>Create an editor plugin to modify, at a low-level, the behaviour of the Markdown editor (CodeMirror)</li>
</ul>
<p>To get started with the plugin API, check the <a href="/api/get_started/plugins/">Get Started</a> page or have a look at the <a href="/api/tutorials/toc_plugin/">TOC tutorial</a>.</p>
<p>Once you are familiar with the API, you can have a look at the <a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">plugin API reference</a> for a detailed documentation about each supported feature.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/overview.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,353 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/references/development_mode.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_mode.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Development mode | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-development_mode">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Development mode<a name="development-mode" href="#development-mode" class="heading-anchor">🔗</a></h1>
<p>When experimenting with Joplin, for example when <a href="/api/get_started/plugins/">developing a plugin</a> or trying a theme, you might want to run Joplin in development mode. Doing this will open a second copy of Joplin using a different profile with test notes and notebooks, so you can experiment without risking changing or deleting your data.</p>
<p>To enable Development Mode, go to <strong>Help &gt; Copy dev mode command to clipboard</strong>. This will copy a command to your clipboard. Paste this command in a shell / terminal to run a development version of the app.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_mode.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,435 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplin.html">joplin</a>
</li>
</ul>
<h1><!-- Class -->joplin</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This is the main entry point to the Joplin API. You can access various services using the provided accessors.</p>
</div>
<p>The API is now relatively stable and in general maintaining backward compatibility is a top priority, so you shouldn&#39;t except much breakages.</p>
<p>If a breaking change ever becomes needed, best effort will be done to:</p>
<ul>
<li>Deprecate features instead of removing them, so as to give you time to fix the issue;</li>
<li>Document breaking changes in the changelog;</li>
</ul>
<p>So if you are developing a plugin, please keep an eye on the changelog as everything will be in there with information about how to update your code.</p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Joplin</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Accessors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#clipboard" class="tsd-kind-icon">clipboard</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#commands" class="tsd-kind-icon">commands</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#contentscripts" class="tsd-kind-icon">content<wbr>Scripts</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#data" class="tsd-kind-icon">data</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#interop" class="tsd-kind-icon">interop</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#plugins" class="tsd-kind-icon">plugins</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#settings" class="tsd-kind-icon">settings</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#views" class="tsd-kind-icon">views</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#window" class="tsd-kind-icon">window</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplin.html#workspace" class="tsd-kind-icon">workspace</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplin.html#require" class="tsd-kind-icon">require</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Accessors</h2>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="clipboard" class="tsd-anchor"></a>
<h3>clipboard</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> clipboard<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinclipboard.html" class="tsd-signature-type">joplin.clipboard</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinclipboard.html" class="tsd-signature-type">joplin.clipboard</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="commands" class="tsd-anchor"></a>
<h3>commands</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> commands<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplincommands.html" class="tsd-signature-type">joplin.commands</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplincommands.html" class="tsd-signature-type">joplin.commands</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="contentscripts" class="tsd-anchor"></a>
<h3>content<wbr>Scripts</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> contentScripts<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplincontentscripts.html" class="tsd-signature-type">joplin.contentScripts</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplincontentscripts.html" class="tsd-signature-type">joplin.contentScripts</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="data" class="tsd-anchor"></a>
<h3>data</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> data<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplindata.html" class="tsd-signature-type">joplin.data</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplindata.html" class="tsd-signature-type">joplin.data</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="interop" class="tsd-anchor"></a>
<h3>interop</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> interop<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplininterop.html" class="tsd-signature-type">joplin.interop</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplininterop.html" class="tsd-signature-type">joplin.interop</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="plugins" class="tsd-anchor"></a>
<h3>plugins</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> plugins<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinplugins.html" class="tsd-signature-type">joplin.plugins</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinplugins.html" class="tsd-signature-type">joplin.plugins</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="settings" class="tsd-anchor"></a>
<h3>settings</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> settings<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinsettings.html" class="tsd-signature-type">joplin.settings</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinsettings.html" class="tsd-signature-type">joplin.settings</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="views" class="tsd-anchor"></a>
<h3>views</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> views<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviews.html" class="tsd-signature-type">joplin.views</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviews.html" class="tsd-signature-type">joplin.views</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="window" class="tsd-anchor"></a>
<h3>window</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> window<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinwindow.html" class="tsd-signature-type">joplin.window</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinwindow.html" class="tsd-signature-type">joplin.window</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="workspace" class="tsd-anchor"></a>
<h3>workspace</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> workspace<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinworkspace.html" class="tsd-signature-type">joplin.workspace</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinworkspace.html" class="tsd-signature-type">joplin.workspace</a></h4>
-->
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="require" class="tsd-anchor"></a>
<h3>require</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">require<span class="tsd-signature-symbol">(</span>_path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>It is not possible to bundle native packages with a plugin, because they
need to work cross-platforms. Instead access to certain useful native
packages is provided using this function.</p>
</div>
<p>Currently these packages are available:</p>
<ul>
<li><a href="https://www.npmjs.com/package/sqlite3">sqlite3</a></li>
<li><a href="https://www.npmjs.com/package/fs-extra">fs-extra</a></li>
</ul>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/nativeModule">View the demo plugin</a></p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>_path: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplin.html" class="tsd-kind-icon">joplin</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplin.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#clipboard" class="tsd-kind-icon">clipboard</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#commands" class="tsd-kind-icon">commands</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#contentscripts" class="tsd-kind-icon">content<wbr>Scripts</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#data" class="tsd-kind-icon">data</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#interop" class="tsd-kind-icon">interop</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#plugins" class="tsd-kind-icon">plugins</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#settings" class="tsd-kind-icon">settings</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#views" class="tsd-kind-icon">views</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#window" class="tsd-kind-icon">window</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplin.html#workspace" class="tsd-kind-icon">workspace</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplin.html#require" class="tsd-kind-icon">require</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,340 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.clipboard | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinclipboard.html">joplin.clipboard</a>
</li>
</ul>
<h1><!-- Class -->joplin.clipboard</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinClipboard</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#availableformats" class="tsd-kind-icon">available<wbr>Formats</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#readhtml" class="tsd-kind-icon">read<wbr>Html</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#readimage" class="tsd-kind-icon">read<wbr>Image</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#readtext" class="tsd-kind-icon">read<wbr>Text</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#writehtml" class="tsd-kind-icon">write<wbr>Html</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#writeimage" class="tsd-kind-icon">write<wbr>Image</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinclipboard.html#writetext" class="tsd-kind-icon">write<wbr>Text</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="availableformats" class="tsd-anchor"></a>
<h3>available<wbr>Formats</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">available<wbr>Formats<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the list available formats (mime types).</p>
</div>
<p>For example [ &#39;text/plain&#39;, &#39;text/html&#39; ]</p>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="readhtml" class="tsd-anchor"></a>
<h3>read<wbr>Html</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">read<wbr>Html<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="readimage" class="tsd-anchor"></a>
<h3>read<wbr>Image</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">read<wbr>Image<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Returns the image in <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">data URL</a> format.</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="readtext" class="tsd-anchor"></a>
<h3>read<wbr>Text</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">read<wbr>Text<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="writehtml" class="tsd-anchor"></a>
<h3>write<wbr>Html</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">write<wbr>Html<span class="tsd-signature-symbol">(</span>html<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>html: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="writeimage" class="tsd-anchor"></a>
<h3>write<wbr>Image</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">write<wbr>Image<span class="tsd-signature-symbol">(</span>dataUrl<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Takes an image in <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs">data URL</a> format.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>dataUrl: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="writetext" class="tsd-anchor"></a>
<h3>write<wbr>Text</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">write<wbr>Text<span class="tsd-signature-symbol">(</span>text<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>text: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinclipboard.html" class="tsd-kind-icon">joplin.clipboard</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinclipboard.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#availableformats" class="tsd-kind-icon">available<wbr>Formats</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#readhtml" class="tsd-kind-icon">read<wbr>Html</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#readimage" class="tsd-kind-icon">read<wbr>Image</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#readtext" class="tsd-kind-icon">read<wbr>Text</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#writehtml" class="tsd-kind-icon">write<wbr>Html</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#writeimage" class="tsd-kind-icon">write<wbr>Image</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinclipboard.html#writetext" class="tsd-kind-icon">write<wbr>Text</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,282 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.commands | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplincommands.html">joplin.commands</a>
</li>
</ul>
<h1><!-- Class -->joplin.commands</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This class allows executing or registering new Joplin commands. Commands
can be executed or associated with
<a href="joplinviewstoolbarbuttons.html">toolbar buttons</a> or
<a href="joplinviewsmenuitems.html">menu items</a>.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/register_command">View the demo plugin</a></p>
<a href="#executing-joplin39s-internal-commands" id="executing-joplin39s-internal-commands" style="color: inherit; text-decoration: none;">
<h2>Executing Joplin&#39;s internal commands</h2>
</a>
<p>It is also possible to execute internal Joplin&#39;s commands which, as of
now, are not well documented. You can find the list directly on GitHub
though at the following locations:</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-desktop/gui/MainScreen/commands">Main screen commands</a></li>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-desktop/commands">Global commands</a></li>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-desktop/gui/NoteEditor/commands/editorCommandDeclarations.ts">Editor commands</a></li>
</ul>
<p>To view what arguments are supported, you can open any of these files
and look at the <code>execute()</code> command.</p>
<a href="#executing-editor-commands" id="executing-editor-commands" style="color: inherit; text-decoration: none;">
<h2>Executing editor commands</h2>
</a>
<p>There might be a situation where you want to invoke editor commands
without using a <a href="joplincontentscripts.html">contentScript</a>. For this
reason Joplin provides the built in <code>editor.execCommand</code> command.</p>
<p><code>editor.execCommand</code> should work with any core command in both the
<a href="https://codemirror.net/doc/manual.html#execCommand">CodeMirror</a> and
<a href="https://www.tiny.cloud/docs/api/tinymce/tinymce.editorcommands/#execcommand">TinyMCE</a> editors,
as well as most functions calls directly on a CodeMirror editor object (extensions).</p>
<ul>
<li><a href="https://codemirror.net/doc/manual.html#commands">CodeMirror commands</a></li>
<li><a href="https://www.tiny.cloud/docs/advanced/editor-command-identifiers/#coreeditorcommands">TinyMCE core editor commands</a></li>
</ul>
<p><code>editor.execCommand</code> supports adding arguments for the commands.</p>
<pre><code class="language-typescript"><span class="hljs-keyword">await</span> joplin.commands.execute(<span class="hljs-string">&#x27;editor.execCommand&#x27;</span>, {
<span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;madeUpCommand&#x27;</span>, <span class="hljs-comment">// CodeMirror and TinyMCE</span>
<span class="hljs-attr">args</span>: [], <span class="hljs-comment">// CodeMirror and TinyMCE</span>
<span class="hljs-attr">ui</span>: <span class="hljs-literal">false</span>, <span class="hljs-comment">// TinyMCE only</span>
<span class="hljs-attr">value</span>: <span class="hljs-string">&#x27;&#x27;</span>, <span class="hljs-comment">// TinyMCE only</span>
});</code></pre>
<p><a href="https://github.com/laurent22/joplin/blob/dev/packages/app-cli/tests/support/plugins/codemirror_content_script/src/index.ts">View the example using the CodeMirror editor</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinCommands</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplincommands.html#execute" class="tsd-kind-icon">execute</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplincommands.html#register" class="tsd-kind-icon">register</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="execute" class="tsd-anchor"></a>
<h3>execute</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">execute<span class="tsd-signature-symbol">(</span>commandName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, <span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p><span class="platform-desktop">desktop</span> Executes the given
command.</p>
</div>
<p>The command can take any number of arguments, and the supported
arguments will vary based on the command. For custom commands, this
is the <code>args</code> passed to the <code>execute()</code> function. For built-in
commands, you can find the supported arguments by checking the links
above.</p>
<pre><code class="language-typescript"><span class="hljs-comment">// Create a new note in the current notebook:</span>
<span class="hljs-keyword">await</span> joplin.commands.execute(<span class="hljs-string">&#x27;newNote&#x27;</span>);
<span class="hljs-comment">// Create a new sub-notebook under the provided notebook</span>
<span class="hljs-comment">// Note: internally, notebooks are called &quot;folders&quot;.</span>
<span class="hljs-keyword">await</span> joplin.commands.execute(<span class="hljs-string">&#x27;newFolder&#x27;</span>, <span class="hljs-string">&quot;SOME_FOLDER_ID&quot;</span>);</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>commandName: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="register" class="tsd-anchor"></a>
<h3>register</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<span class="tsd-signature-symbol">(</span>command<span class="tsd-signature-symbol">: </span><a href="../interfaces/command.html" class="tsd-signature-type">Command</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p><span class="platform-desktop">desktop</span> Registers a new command.</p>
</div>
<pre><code class="language-typescript"><span class="hljs-comment">// Register a new commmand called &quot;testCommand1&quot;</span>
<span class="hljs-keyword">await</span> joplin.commands.register({
<span class="hljs-attr">name</span>: <span class="hljs-string">&#x27;testCommand1&#x27;</span>,
<span class="hljs-attr">label</span>: <span class="hljs-string">&#x27;My Test Command 1&#x27;</span>,
<span class="hljs-attr">iconName</span>: <span class="hljs-string">&#x27;fas fa-music&#x27;</span>,
<span class="hljs-attr">execute</span>: <span class="hljs-function">() =&gt;</span> {
alert(<span class="hljs-string">&#x27;Testing plugin command 1&#x27;</span>);
},
});</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>command: <a href="../interfaces/command.html" class="tsd-signature-type">Command</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplincommands.html" class="tsd-kind-icon">joplin.commands</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplincommands.html#execute" class="tsd-kind-icon">execute</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplincommands.html#register" class="tsd-kind-icon">register</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,256 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.contentScripts | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplincontentscripts.html">joplin.contentScripts</a>
</li>
</ul>
<h1><!-- Class -->joplin.contentScripts</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinContentScripts</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplincontentscripts.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplincontentscripts.html#register" class="tsd-kind-icon">register</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onmessage" class="tsd-anchor"></a>
<h3>on<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Message<span class="tsd-signature-symbol">(</span>contentScriptId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Listens to a messages sent from the content script using postMessage().
See <a href="../enums/contentscripttype.html">ContentScriptType</a> for more information as well as the
<a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/post_messages">postMessage
demo</a></p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>contentScriptId: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>callback: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="register" class="tsd-anchor"></a>
<h3>register</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<span class="tsd-signature-symbol">(</span>type<span class="tsd-signature-symbol">: </span><a href="../enums/contentscripttype.html" class="tsd-signature-type">ContentScriptType</a>, id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, scriptPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers a new content script. Unlike regular plugin code, which runs in
a separate process, content scripts run within the main process code and
thus allow improved performances and more customisations in specific
cases. It can be used for example to load a Markdown or editor plugin.</p>
</div>
<p>Note that registering a content script in itself will do nothing - it
will only be loaded in specific cases by the relevant app modules (eg.
the Markdown renderer or the code editor). So it is not a way to inject
and run arbitrary code in the app, which for safety and performance
reasons is not supported.</p>
<p>The plugin generator provides a way to build any content script you might
want to package as well as its dependencies. See the <a href="https://github.com/laurent22/joplin/blob/dev/packages/generator-joplin/README.md">Plugin Generator
doc</a>
for more information.</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/content_script">View the renderer demo plugin</a></li>
<li><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/codemirror_content_script">View the editor demo plugin</a></li>
</ul>
<p>See also the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/post_messages">postMessage demo</a></p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>type: <a href="../enums/contentscripttype.html" class="tsd-signature-type">ContentScriptType</a></h5>
<div class="tsd-comment tsd-typography">
<p>Defines how the script will be used. See the type definition for more information about each supported type.</p>
</div>
</li>
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>A unique ID for the content script.</p>
</div>
</li>
<li>
<h5>scriptPath: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>Must be a path relative to the plugin main script. For example, if your file content_script.js is next to your index.ts file, you would set <code>scriptPath</code> to <code>&quot;./content_script.js</code>.</p>
</div>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplincontentscripts.html" class="tsd-kind-icon">joplin.contentScripts</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplincontentscripts.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplincontentscripts.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplincontentscripts.html#register" class="tsd-kind-icon">register</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,314 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.data | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplindata.html">joplin.data</a>
</li>
</ul>
<h1><!-- Class -->joplin.data</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This module provides access to the Joplin data API: <a href="https://joplinapp.org/api/references/rest_api/">https://joplinapp.org/api/references/rest_api/</a>
This is the main way to retrieve data, such as notes, notebooks, tags, etc.
or to update them or delete them.</p>
</div>
<p>This is also what you would use to search notes, via the <code>search</code> endpoint.</p>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/simple">View the demo plugin</a></p>
<p>In general you would use the methods in this class as if you were using a REST API. There are four methods that map to GET, POST, PUT and DELETE calls.
And each method takes these parameters:</p>
<ul>
<li><code>path</code>: This is an array that represents the path to the resource in the form <code>[&quot;resouceName&quot;, &quot;resourceId&quot;, &quot;resourceLink&quot;]</code> (eg. [&quot;tags&quot;, &quot;:id&quot;, &quot;notes&quot;]). The &quot;resources&quot; segment is the name of the resources you want to access (eg. &quot;notes&quot;, &quot;folders&quot;, etc.). If not followed by anything, it will refer to all the resources in that collection. The optional &quot;resourceId&quot; points to a particular resources within the collection. Finally, an optional &quot;link&quot; can be present, which links the resource to a collection of resources. This can be used in the API for example to retrieve all the notes associated with a tag.</li>
<li><code>query</code>: (Optional) The query parameters. In a URL, this is the part after the question mark &quot;?&quot;. In this case, it should be an object with key/value pairs.</li>
<li><code>data</code>: (Optional) Applies to PUT and POST calls only. The request body contains the data you want to create or modify, for example the content of a note or folder.</li>
<li><code>files</code>: (Optional) Used to create new resources and associate them with files.</li>
</ul>
<p>Please refer to the <a href="https://joplinapp.org/api/references/rest_api/">Joplin API documentation</a> for complete details about each call. As the plugin runs within the Joplin application <strong>you do not need an authorisation token</strong> to use this API.</p>
<p>For example:</p>
<pre><code class="language-typescript"><span class="hljs-comment">// Get a note ID, title and body</span>
<span class="hljs-keyword">const</span> noteId = <span class="hljs-string">&#x27;some_note_id&#x27;</span>;
<span class="hljs-keyword">const</span> note = <span class="hljs-keyword">await</span> joplin.data.get([<span class="hljs-string">&#x27;notes&#x27;</span>, noteId], { <span class="hljs-attr">fields</span>: [<span class="hljs-string">&#x27;id&#x27;</span>, <span class="hljs-string">&#x27;title&#x27;</span>, <span class="hljs-string">&#x27;body&#x27;</span>] });
<span class="hljs-comment">// Get all folders</span>
<span class="hljs-keyword">const</span> folders = <span class="hljs-keyword">await</span> joplin.data.get([<span class="hljs-string">&#x27;folders&#x27;</span>]);
<span class="hljs-comment">// Set the note body</span>
<span class="hljs-keyword">await</span> joplin.data.put([<span class="hljs-string">&#x27;notes&#x27;</span>, noteId], <span class="hljs-literal">null</span>, { <span class="hljs-attr">body</span>: <span class="hljs-string">&quot;New note body&quot;</span> });
<span class="hljs-comment">// Create a new note under one of the folders</span>
<span class="hljs-keyword">await</span> joplin.data.post([<span class="hljs-string">&#x27;notes&#x27;</span>], <span class="hljs-literal">null</span>, { <span class="hljs-attr">body</span>: <span class="hljs-string">&quot;my new note&quot;</span>, <span class="hljs-attr">title</span>: <span class="hljs-string">&quot;some title&quot;</span>, <span class="hljs-attr">parent_id</span>: folders[<span class="hljs-number">0</span>].id });</code></pre>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinData</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplindata.html#delete" class="tsd-kind-icon">delete</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplindata.html#get" class="tsd-kind-icon">get</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplindata.html#post" class="tsd-kind-icon">post</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplindata.html#put" class="tsd-kind-icon">put</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="delete" class="tsd-anchor"></a>
<h3>delete</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">delete<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><a href="../globals.html#path" class="tsd-signature-type">Path</a>, query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <a href="../globals.html#path" class="tsd-signature-type">Path</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> query: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="get" class="tsd-anchor"></a>
<h3>get</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">get<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><a href="../globals.html#path" class="tsd-signature-type">Path</a>, query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <a href="../globals.html#path" class="tsd-signature-type">Path</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> query: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="post" class="tsd-anchor"></a>
<h3>post</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">post<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><a href="../globals.html#path" class="tsd-signature-type">Path</a>, query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span>, body<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span>, files<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <a href="../globals.html#path" class="tsd-signature-type">Path</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> query: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> body: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> files: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="put" class="tsd-anchor"></a>
<h3>put</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">put<span class="tsd-signature-symbol">(</span>path<span class="tsd-signature-symbol">: </span><a href="../globals.html#path" class="tsd-signature-type">Path</a>, query<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span>, body<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span>, files<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>path: <a href="../globals.html#path" class="tsd-signature-type">Path</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> query: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> body: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> files: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = null</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplindata.html" class="tsd-kind-icon">joplin.data</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplindata.html#delete" class="tsd-kind-icon">delete</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplindata.html#get" class="tsd-kind-icon">get</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplindata.html#post" class="tsd-kind-icon">post</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplindata.html#put" class="tsd-kind-icon">put</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,213 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.interop | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplininterop.html">joplin.interop</a>
</li>
</ul>
<h1><!-- Class -->joplin.interop</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Provides a way to create modules to import external data into Joplin or to export notes into any arbitrary format.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/json_export">View the demo plugin</a></p>
<p>To implement an import or export module, you would simply define an object with various event handlers that are called
by the application during the import/export process.</p>
<p>See the documentation of the <a href="../interfaces/exportmodule.html">ExportModule</a> and <a href="../interfaces/importmodule.html">ImportModule</a> for more information.</p>
<p>You may also want to refer to the Joplin API documentation to see the list of properties for each item (note, notebook, etc.) - <a href="https://joplinapp.org/api/references/rest_api/">https://joplinapp.org/api/references/rest_api/</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinInterop</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplininterop.html#registerexportmodule" class="tsd-kind-icon">register<wbr>Export<wbr>Module</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplininterop.html#registerimportmodule" class="tsd-kind-icon">register<wbr>Import<wbr>Module</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registerexportmodule" class="tsd-anchor"></a>
<h3>register<wbr>Export<wbr>Module</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Export<wbr>Module<span class="tsd-signature-symbol">(</span>module<span class="tsd-signature-symbol">: </span><a href="../interfaces/exportmodule.html" class="tsd-signature-type">ExportModule</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>module: <a href="../interfaces/exportmodule.html" class="tsd-signature-type">ExportModule</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registerimportmodule" class="tsd-anchor"></a>
<h3>register<wbr>Import<wbr>Module</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Import<wbr>Module<span class="tsd-signature-symbol">(</span>module<span class="tsd-signature-symbol">: </span><a href="../interfaces/importmodule.html" class="tsd-signature-type">ImportModule</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>module: <a href="../interfaces/importmodule.html" class="tsd-signature-type">ImportModule</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplininterop.html" class="tsd-kind-icon">joplin.interop</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplininterop.html#registerexportmodule" class="tsd-kind-icon">register<wbr>Export<wbr>Module</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplininterop.html#registerimportmodule" class="tsd-kind-icon">register<wbr>Import<wbr>Module</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,333 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.plugins | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinplugins.html">joplin.plugins</a>
</li>
</ul>
<h1><!-- Class -->joplin.plugins</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This class provides access to plugin-related features.</p>
</div>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinPlugins</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#datadir" class="tsd-kind-icon">data<wbr>Dir</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#installationdir" class="tsd-kind-icon">installation<wbr>Dir</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#register" class="tsd-kind-icon">register</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#registercontentscript" class="tsd-kind-icon">register<wbr>Content<wbr>Script</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinplugins.html#require" class="tsd-kind-icon">require</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="datadir" class="tsd-anchor"></a>
<h3>data<wbr>Dir</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">data<wbr>Dir<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets the plugin own data directory path. Use this to store any
plugin-related data. Unlike <a href="joplinplugins.html#installationdir">installationDir</a>, any data stored here
will be persisted.</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="installationdir" class="tsd-anchor"></a>
<h3>installation<wbr>Dir</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">installation<wbr>Dir<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets the plugin installation directory. This can be used to access any
asset that was packaged with the plugin. This directory should be
considered read-only because any data you store here might be deleted or
re-created at any time. To store new persistent data, use <a href="joplinplugins.html#datadir">dataDir</a>.</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="register" class="tsd-anchor"></a>
<h3>register</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<span class="tsd-signature-symbol">(</span>script<span class="tsd-signature-symbol">: </span><a href="../interfaces/script.html" class="tsd-signature-type">Script</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers a new plugin. This is the entry point when creating a plugin. You should pass a simple object with an <code>onStart</code> method to it.
That <code>onStart</code> method will be executed as soon as the plugin is loaded.</p>
</div>
<pre><code class="language-typescript">joplin.plugins.register({
<span class="hljs-attr">onStart</span>: <span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{
<span class="hljs-comment">// Run your plugin code here</span>
}
});</code></pre>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>script: <a href="../interfaces/script.html" class="tsd-signature-type">Script</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registercontentscript" class="tsd-anchor"></a>
<h3>register<wbr>Content<wbr>Script</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Content<wbr>Script<span class="tsd-signature-symbol">(</span>type<span class="tsd-signature-symbol">: </span><a href="../enums/contentscripttype.html" class="tsd-signature-type">ContentScriptType</a>, id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, scriptPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Use joplin.contentScripts.register()</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>type: <a href="../enums/contentscripttype.html" class="tsd-signature-type">ContentScriptType</a></h5>
</li>
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>scriptPath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="require" class="tsd-anchor"></a>
<h3>require</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">require<span class="tsd-signature-symbol">(</span>_path<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Use joplin.require()</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>_path: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">any</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinplugins.html" class="tsd-kind-icon">joplin.plugins</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinplugins.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinplugins.html#datadir" class="tsd-kind-icon">data<wbr>Dir</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinplugins.html#installationdir" class="tsd-kind-icon">installation<wbr>Dir</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinplugins.html#register" class="tsd-kind-icon">register</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinplugins.html#registercontentscript" class="tsd-kind-icon">register<wbr>Content<wbr>Script</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinplugins.html#require" class="tsd-kind-icon">require</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,415 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.settings | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinsettings.html">joplin.settings</a>
</li>
</ul>
<h1><!-- Class -->joplin.settings</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This API allows registering new settings and setting sections, as well as getting and setting settings. Once a setting has been registered it will appear in the config screen and be editable by the user.</p>
</div>
<p>Settings are essentially key/value pairs.</p>
<p>Note: Currently this API does <strong>not</strong> provide access to Joplin&#39;s built-in settings. This is by design as plugins that modify user settings could give unexpected results</p>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/settings">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinSettings</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#globalvalue" class="tsd-kind-icon">global<wbr>Value</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#onchange" class="tsd-kind-icon">on<wbr>Change</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#registersection" class="tsd-kind-icon">register<wbr>Section</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#registersetting" class="tsd-kind-icon">register<wbr>Setting</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#registersettings" class="tsd-kind-icon">register<wbr>Settings</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#setvalue" class="tsd-kind-icon">set<wbr>Value</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinsettings.html#value" class="tsd-kind-icon">value</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="globalvalue" class="tsd-anchor"></a>
<h3>global<wbr>Value</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">global<wbr>Value<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets a global setting value, including app-specific settings and those set by other plugins.</p>
</div>
<p>The list of available settings is not documented yet, but can be found by looking at the source code:</p>
<p><a href="https://github.com/laurent22/joplin/blob/dev/packages/lib/models/Setting.ts#L142">https://github.com/laurent22/joplin/blob/dev/packages/lib/models/Setting.ts#L142</a></p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onchange" class="tsd-anchor"></a>
<h3>on<wbr>Change</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Change<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><a href="../globals.html#changehandler" class="tsd-signature-type">ChangeHandler</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when one or multiple settings of your plugin have been changed.</p>
<ul>
<li>For performance reasons, this event is triggered with a delay.</li>
<li>You will only get events for your own plugin settings.</li>
</ul>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handler: <a href="../globals.html#changehandler" class="tsd-signature-type">ChangeHandler</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registersection" class="tsd-anchor"></a>
<h3>register<wbr>Section</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Section<span class="tsd-signature-symbol">(</span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, section<span class="tsd-signature-symbol">: </span><a href="../interfaces/settingsection.html" class="tsd-signature-type">SettingSection</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers a new setting section. Like for registerSetting, it is dynamic and needs to be done every time the plugin starts.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>name: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>section: <a href="../interfaces/settingsection.html" class="tsd-signature-type">SettingSection</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registersetting" class="tsd-anchor"></a>
<h3>register<wbr>Setting</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Setting<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, settingItem<span class="tsd-signature-symbol">: </span><a href="../interfaces/settingitem.html" class="tsd-signature-type">SettingItem</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Use joplin.settings.registerSettings()</p>
<p>Registers a new setting.</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>settingItem: <a href="../interfaces/settingitem.html" class="tsd-signature-type">SettingItem</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="registersettings" class="tsd-anchor"></a>
<h3>register<wbr>Settings</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">register<wbr>Settings<span class="tsd-signature-symbol">(</span>settings<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="../interfaces/settingitem.html" class="tsd-signature-type">SettingItem</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers new settings.
Note that registering a setting item is dynamic and will be gone next time Joplin starts.
What it means is that you need to register the setting every time the plugin starts (for example in the onStart event).
The setting value however will be preserved from one launch to the next so there is no risk that it will be lost even if for some
reason the plugin fails to start at some point.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>settings: <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><a href="../interfaces/settingitem.html" class="tsd-signature-type">SettingItem</a><span class="tsd-signature-symbol">&gt;</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setvalue" class="tsd-anchor"></a>
<h3>set<wbr>Value</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Value<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, value<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Sets a setting value (only applies to setting you registered from your plugin)</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>value: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="value" class="tsd-anchor"></a>
<h3>value</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">value<span class="tsd-signature-symbol">(</span>key<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets a setting value (only applies to setting you registered from your plugin)</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>key: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinsettings.html" class="tsd-kind-icon">joplin.settings</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinsettings.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#globalvalue" class="tsd-kind-icon">global<wbr>Value</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#onchange" class="tsd-kind-icon">on<wbr>Change</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#registersection" class="tsd-kind-icon">register<wbr>Section</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#registersetting" class="tsd-kind-icon">register<wbr>Setting</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#registersettings" class="tsd-kind-icon">register<wbr>Settings</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#setvalue" class="tsd-kind-icon">set<wbr>Value</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinsettings.html#value" class="tsd-kind-icon">value</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,271 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviews.html">joplin.views</a>
</li>
</ul>
<h1><!-- Class -->joplin.views</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This namespace provides access to view-related services.</p>
</div>
<p>All view services provide a <code>create()</code> method which you would use to create the view object, whether it&#39;s a dialog, a toolbar button or a menu item.
In some cases, the <code>create()</code> method will return a <a href="../globals.html#viewhandle">ViewHandle</a>, which you would use to act on the view, for example to set certain properties or call some methods.</p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViews</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Accessors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplinviews.html#dialogs" class="tsd-kind-icon">dialogs</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplinviews.html#menuitems" class="tsd-kind-icon">menu<wbr>Items</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplinviews.html#menus" class="tsd-kind-icon">menus</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplinviews.html#panels" class="tsd-kind-icon">panels</a></li>
<li class="tsd-kind-get-signature tsd-parent-kind-class"><a href="joplinviews.html#toolbarbuttons" class="tsd-kind-icon">toolbar<wbr>Buttons</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Accessors</h2>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="dialogs" class="tsd-anchor"></a>
<h3>dialogs</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> dialogs<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviewsdialogs.html" class="tsd-signature-type">joplin.views.dialogs</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviewsdialogs.html" class="tsd-signature-type">joplin.views.dialogs</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="menuitems" class="tsd-anchor"></a>
<h3>menu<wbr>Items</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> menuItems<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviewsmenuitems.html" class="tsd-signature-type">joplin.views.menuItems</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviewsmenuitems.html" class="tsd-signature-type">joplin.views.menuItems</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="menus" class="tsd-anchor"></a>
<h3>menus</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> menus<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviewsmenus.html" class="tsd-signature-type">joplin.views.menus</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviewsmenus.html" class="tsd-signature-type">joplin.views.menus</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="panels" class="tsd-anchor"></a>
<h3>panels</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> panels<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviewspanels.html" class="tsd-signature-type">joplin.views.panels</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviewspanels.html" class="tsd-signature-type">joplin.views.panels</a></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-get-signature tsd-parent-kind-class">
<a name="toolbarbuttons" class="tsd-anchor"></a>
<h3>toolbar<wbr>Buttons</h3>
<ul class="tsd-signatures tsd-kind-get-signature tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">get</span> toolbarButtons<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="joplinviewstoolbarbuttons.html" class="tsd-signature-type">joplin.views.toolbarButtons</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <a href="joplinviewstoolbarbuttons.html" class="tsd-signature-type">joplin.views.toolbarButtons</a></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviews.html" class="tsd-kind-icon">joplin.views</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviews.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplinviews.html#dialogs" class="tsd-kind-icon">dialogs</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplinviews.html#menuitems" class="tsd-kind-icon">menu<wbr>Items</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplinviews.html#menus" class="tsd-kind-icon">menus</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplinviews.html#panels" class="tsd-kind-icon">panels</a>
</li>
<li class=" tsd-kind-get-signature tsd-parent-kind-class">
<a href="joplinviews.html#toolbarbuttons" class="tsd-kind-icon">toolbar<wbr>Buttons</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,433 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views.dialogs | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviewsdialogs.html">joplin.views.dialogs</a>
</li>
</ul>
<h1><!-- Class -->joplin.views.dialogs</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Allows creating and managing dialogs. A dialog is modal window that
contains a webview and a row of buttons. You can update the
webview using the <code>setHtml</code> method. Dialogs are hidden by default and
you need to call <code>open()</code> to open them. Once the user clicks on a
button, the <code>open</code> call will return an object indicating what button was
clicked on.</p>
</div>
<a href="#retrieving-form-values" id="retrieving-form-values" style="color: inherit; text-decoration: none;">
<h2>Retrieving form values</h2>
</a>
<p>If your HTML content included one or more forms, a <code>formData</code> object
will also be included with the key/value for each form.</p>
<a href="#special-button-ids" id="special-button-ids" style="color: inherit; text-decoration: none;">
<h2>Special button IDs</h2>
</a>
<p>The following buttons IDs have a special meaning:</p>
<ul>
<li><code>ok</code>, <code>yes</code>, <code>submit</code>, <code>confirm</code>: They are considered &quot;submit&quot; buttons</li>
<li><code>cancel</code>, <code>no</code>, <code>reject</code>: They are considered &quot;dismiss&quot; buttons</li>
</ul>
<p>This information is used by the application to determine what action
should be done when the user presses &quot;Enter&quot; or &quot;Escape&quot; within the
dialog. If they press &quot;Enter&quot;, the first &quot;submit&quot; button will be
automatically clicked. If they press &quot;Escape&quot; the first &quot;dismiss&quot; button
will be automatically clicked.</p>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/dialog">View the demo
plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViewsDialogs</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#addscript" class="tsd-kind-icon">add<wbr>Script</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#create" class="tsd-kind-icon">create</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#open" class="tsd-kind-icon">open</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#setbuttons" class="tsd-kind-icon">set<wbr>Buttons</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#setfittocontent" class="tsd-kind-icon">set<wbr>Fit<wbr>ToContent</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#sethtml" class="tsd-kind-icon">set<wbr>Html</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsdialogs.html#showmessagebox" class="tsd-kind-icon">show<wbr>Message<wbr>Box</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addscript" class="tsd-anchor"></a>
<h3>add<wbr>Script</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Script<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, scriptPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds and loads a new JS or CSS files into the dialog.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>scriptPath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="create" class="tsd-anchor"></a>
<h3>create</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Creates a new dialog</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="open" class="tsd-anchor"></a>
<h3>open</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">open<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/dialogresult.html" class="tsd-signature-type">DialogResult</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Opens the dialog</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/dialogresult.html" class="tsd-signature-type">DialogResult</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setbuttons" class="tsd-anchor"></a>
<h3>set<wbr>Buttons</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Buttons<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, buttons<span class="tsd-signature-symbol">: </span><a href="../interfaces/buttonspec.html" class="tsd-signature-type">ButtonSpec</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/buttonspec.html" class="tsd-signature-type">ButtonSpec</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Sets the dialog buttons.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>buttons: <a href="../interfaces/buttonspec.html" class="tsd-signature-type">ButtonSpec</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/buttonspec.html" class="tsd-signature-type">ButtonSpec</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="setfittocontent" class="tsd-anchor"></a>
<h3>set<wbr>Fit<wbr>ToContent</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Fit<wbr>ToContent<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, status<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Toggle on whether to fit the dialog size to the content or not.
When set to false, the dialog is set to 90vw and 80vh</p>
</div>
<dl class="tsd-comment-tags">
<dt>default</dt>
<dd><p>true</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>status: <span class="tsd-signature-type">boolean</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="sethtml" class="tsd-anchor"></a>
<h3>set<wbr>Html</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Html<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, html<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Sets the dialog HTML content</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>html: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="showmessagebox" class="tsd-anchor"></a>
<h3>show<wbr>Message<wbr>Box</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">show<wbr>Message<wbr>Box<span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Displays a message box with OK/Cancel buttons. Returns the button index that was clicked - &quot;0&quot; for OK and &quot;1&quot; for &quot;Cancel&quot;</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviewsdialogs.html" class="tsd-kind-icon">joplin.views.dialogs</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#addscript" class="tsd-kind-icon">add<wbr>Script</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#create" class="tsd-kind-icon">create</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#open" class="tsd-kind-icon">open</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#setbuttons" class="tsd-kind-icon">set<wbr>Buttons</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#setfittocontent" class="tsd-kind-icon">set<wbr>Fit<wbr>ToContent</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#sethtml" class="tsd-kind-icon">set<wbr>Html</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsdialogs.html#showmessagebox" class="tsd-kind-icon">show<wbr>Message<wbr>Box</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,202 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views.menuItems | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviewsmenuitems.html">joplin.views.menuItems</a>
</li>
</ul>
<h1><!-- Class -->joplin.views.menuItems</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Allows creating and managing menu items.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/register_command">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViewsMenuItems</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsmenuitems.html#create" class="tsd-kind-icon">create</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="create" class="tsd-anchor"></a>
<h3>create</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, commandName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, location<span class="tsd-signature-symbol">?: </span><a href="../enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a>, options<span class="tsd-signature-symbol">?: </span><a href="../interfaces/createmenuitemoptions.html" class="tsd-signature-type">CreateMenuItemOptions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Creates a new menu item and associate it with the given command. You can specify under which menu the item should appear using the <code>location</code> parameter.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>commandName: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> location: <a href="../enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a><span class="tsd-signature-symbol"> = MenuItemLocation.Tools</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> options: <a href="../interfaces/createmenuitemoptions.html" class="tsd-signature-type">CreateMenuItemOptions</a><span class="tsd-signature-symbol"> = null</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviewsmenuitems.html" class="tsd-kind-icon">joplin.views.menuItems</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviewsmenuitems.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsmenuitems.html#create" class="tsd-kind-icon">create</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,203 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views.menus | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviewsmenus.html">joplin.views.menus</a>
</li>
</ul>
<h1><!-- Class -->joplin.views.menus</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Allows creating menus.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/menu">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViewsMenus</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewsmenus.html#create" class="tsd-kind-icon">create</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="create" class="tsd-anchor"></a>
<h3>create</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, label<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, menuItems<span class="tsd-signature-symbol">: </span><a href="../interfaces/menuitem.html" class="tsd-signature-type">MenuItem</a><span class="tsd-signature-symbol">[]</span>, location<span class="tsd-signature-symbol">?: </span><a href="../enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Creates a new menu from the provided menu items and place it at the given location. As of now, it is only possible to place the
menu as a sub-menu of the application build-in menus.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>label: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>menuItems: <a href="../interfaces/menuitem.html" class="tsd-signature-type">MenuItem</a><span class="tsd-signature-symbol">[]</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> location: <a href="../enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a><span class="tsd-signature-symbol"> = MenuItemLocation.Tools</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviewsmenus.html" class="tsd-kind-icon">joplin.views.menus</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviewsmenus.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewsmenus.html#create" class="tsd-kind-icon">create</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,461 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views.panels | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviewspanels.html">joplin.views.panels</a>
</li>
</ul>
<h1><!-- Class -->joplin.views.panels</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Allows creating and managing view panels. View panels currently are
displayed at the right of the sidebar and allows displaying any HTML
content (within a webview) and update it in real-time. For example it
could be used to display a table of content for the active note, or
display various metadata or graph.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/toc">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViewsPanels</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#addscript" class="tsd-kind-icon">add<wbr>Script</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#create" class="tsd-kind-icon">create</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#hide" class="tsd-kind-icon">hide</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#postmessage" class="tsd-kind-icon">post<wbr>Message</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#sethtml" class="tsd-kind-icon">set<wbr>Html</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#show" class="tsd-kind-icon">show</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewspanels.html#visible" class="tsd-kind-icon">visible</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="addscript" class="tsd-anchor"></a>
<h3>add<wbr>Script</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">add<wbr>Script<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, scriptPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Adds and loads a new JS or CSS files into the panel.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>scriptPath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="create" class="tsd-anchor"></a>
<h3>create</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Creates a new panel</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="hide" class="tsd-anchor"></a>
<h3>hide</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">hide<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Hides the panel</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onmessage" class="tsd-anchor"></a>
<h3>on<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Message<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when a message is sent from the webview (using postMessage).</p>
</div>
<p>To post a message from the webview to the plugin use:</p>
<pre><code class="language-javascript"><span class="hljs-keyword">const</span> response = <span class="hljs-keyword">await</span> webviewApi.postMessage(message);</code></pre>
<ul>
<li><code>message</code> can be any JavaScript object, string or number</li>
<li><code>response</code> is whatever was returned by the <code>onMessage</code> handler</li>
</ul>
<p>Using this mechanism, you can have two-way communication between the
plugin and webview.</p>
<p>See the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/post_messages">postMessage
demo</a> for more details.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>callback: <span class="tsd-signature-type">Function</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="postmessage" class="tsd-anchor"></a>
<h3>post<wbr>Message</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">post<wbr>Message<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Sends a message to the webview.</p>
</div>
<p>The webview must have registered a message handler prior, otherwise the message is ignored. Use;</p>
<pre><code class="language-javascript">webviewApi.onMessage(<span class="hljs-function">(<span class="hljs-params">message</span>) =&gt;</span> { ... });</code></pre>
<ul>
<li><code>message</code> can be any JavaScript object, string or number</li>
</ul>
<p>The view API may have only one onMessage handler defined.
This method is fire and forget so no response is returned.</p>
<p>It is particularly useful when the webview needs to react to events emitted by the plugin or the joplin api.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>message: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="sethtml" class="tsd-anchor"></a>
<h3>set<wbr>Html</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">set<wbr>Html<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, html<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Sets the panel webview HTML</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5>html: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="show" class="tsd-anchor"></a>
<h3>show</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">show<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a>, show<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Shows the panel</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagDefault value">Default value</span> show: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = true</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="visible" class="tsd-anchor"></a>
<h3>visible</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">visible<span class="tsd-signature-symbol">(</span>handle<span class="tsd-signature-symbol">: </span><a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Tells whether the panel is visible or not</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handle: <a href="../globals.html#viewhandle" class="tsd-signature-type">ViewHandle</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviewspanels.html" class="tsd-kind-icon">joplin.views.panels</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviewspanels.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#addscript" class="tsd-kind-icon">add<wbr>Script</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#create" class="tsd-kind-icon">create</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#hide" class="tsd-kind-icon">hide</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#onmessage" class="tsd-kind-icon">on<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#postmessage" class="tsd-kind-icon">post<wbr>Message</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#sethtml" class="tsd-kind-icon">set<wbr>Html</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#show" class="tsd-kind-icon">show</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewspanels.html#visible" class="tsd-kind-icon">visible</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,199 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.views.toolbarButtons | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinviewstoolbarbuttons.html">joplin.views.toolbarButtons</a>
</li>
</ul>
<h1><!-- Class -->joplin.views.toolbarButtons</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Allows creating and managing toolbar buttons.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/register_command">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinViewsToolbarButtons</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinviewstoolbarbuttons.html#create" class="tsd-kind-icon">create</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="create" class="tsd-anchor"></a>
<h3>create</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">create<span class="tsd-signature-symbol">(</span>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, commandName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, location<span class="tsd-signature-symbol">: </span><a href="../enums/toolbarbuttonlocation.html" class="tsd-signature-type">ToolbarButtonLocation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Creates a new toolbar button and associate it with the given command.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>id: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>commandName: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>location: <a href="../enums/toolbarbuttonlocation.html" class="tsd-signature-type">ToolbarButtonLocation</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinviewstoolbarbuttons.html" class="tsd-kind-icon">joplin.views.toolbarButtons</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinviewstoolbarbuttons.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinviewstoolbarbuttons.html#create" class="tsd-kind-icon">create</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,224 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.window | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinwindow.html">joplin.window</a>
</li>
</ul>
<h1><!-- Class -->joplin.window</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinWindow</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinwindow.html#loadchromecssfile" class="tsd-kind-icon">load<wbr>Chrome<wbr>Css<wbr>File</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinwindow.html#loadnotecssfile" class="tsd-kind-icon">load<wbr>Note<wbr>Css<wbr>File</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="loadchromecssfile" class="tsd-anchor"></a>
<h3>load<wbr>Chrome<wbr>Css<wbr>File</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">load<wbr>Chrome<wbr>Css<wbr>File<span class="tsd-signature-symbol">(</span>filePath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Loads a chrome CSS file. It will apply to the window UI elements, except
for the note viewer. It is the same as the &quot;Custom stylesheet for
Joplin-wide app styles&quot; setting. See the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/load_css">Load CSS Demo</a>
for an example.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>filePath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="loadnotecssfile" class="tsd-anchor"></a>
<h3>load<wbr>Note<wbr>Css<wbr>File</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">load<wbr>Note<wbr>Css<wbr>File<span class="tsd-signature-symbol">(</span>filePath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Loads a note CSS file. It will apply to the note viewer, as well as any
exported or printed note. It is the same as the &quot;Custom stylesheet for
rendered Markdown&quot; setting. See the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/load_css">Load CSS Demo</a>
for an example.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>filePath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinwindow.html" class="tsd-kind-icon">joplin.window</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinwindow.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinwindow.html#loadchromecssfile" class="tsd-kind-icon">load<wbr>Chrome<wbr>Css<wbr>File</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinwindow.html#loadnotecssfile" class="tsd-kind-icon">load<wbr>Note<wbr>Css<wbr>File</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,450 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>joplin.workspace | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="joplinworkspace.html">joplin.workspace</a>
</li>
</ul>
<h1><!-- Class -->joplin.workspace</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The workspace service provides access to all the parts of Joplin that
are being worked on - i.e. the currently selected notes or notebooks as
well as various related events, such as when a new note is selected, or
when the note content changes.</p>
</div>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins">View the demo plugin</a></p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">JoplinWorkspace</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onnotealarmtrigger" class="tsd-kind-icon">on<wbr>Note<wbr>Alarm<wbr>Trigger</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onnotechange" class="tsd-kind-icon">on<wbr>Note<wbr>Change</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onnotecontentchange" class="tsd-kind-icon">on<wbr>Note<wbr>Content<wbr>Change</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onnoteselectionchange" class="tsd-kind-icon">on<wbr>Note<wbr>Selection<wbr>Change</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onsynccomplete" class="tsd-kind-icon">on<wbr>Sync<wbr>Complete</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#onsyncstart" class="tsd-kind-icon">on<wbr>Sync<wbr>Start</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#selectedfolder" class="tsd-kind-icon">selected<wbr>Folder</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#selectednote" class="tsd-kind-icon">selected<wbr>Note</a></li>
<li class="tsd-kind-method tsd-parent-kind-class"><a href="joplinworkspace.html#selectednoteids" class="tsd-kind-icon">selected<wbr>Note<wbr>Ids</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onnotealarmtrigger" class="tsd-anchor"></a>
<h3>on<wbr>Note<wbr>Alarm<wbr>Trigger</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Note<wbr>Alarm<wbr>Trigger<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when an alarm associated with a to-do is triggered.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handler: <span class="tsd-signature-type">Function</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onnotechange" class="tsd-anchor"></a>
<h3>on<wbr>Note<wbr>Change</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Note<wbr>Change<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><a href="../globals.html#itemchangehandler" class="tsd-signature-type">ItemChangeHandler</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the content of the current note changes.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handler: <a href="../globals.html#itemchangehandler" class="tsd-signature-type">ItemChangeHandler</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onnotecontentchange" class="tsd-anchor"></a>
<h3>on<wbr>Note<wbr>Content<wbr>Change</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Note<wbr>Content<wbr>Change<span class="tsd-signature-symbol">(</span>callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the content of a note changes.</p>
</div>
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Use <code>onNoteChange()</code> instead, which is reliably triggered whenever the note content, or any note property changes.</p>
</dd>
</dl>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>callback: <span class="tsd-signature-type">Function</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onnoteselectionchange" class="tsd-anchor"></a>
<h3>on<wbr>Note<wbr>Selection<wbr>Change</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Note<wbr>Selection<wbr>Change<span class="tsd-signature-symbol">(</span>callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when a new note or notes are selected.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>callback: <span class="tsd-signature-type">Function</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onsynccomplete" class="tsd-anchor"></a>
<h3>on<wbr>Sync<wbr>Complete</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Sync<wbr>Complete<span class="tsd-signature-symbol">(</span>callback<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Function</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the synchronisation process has finished.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>callback: <span class="tsd-signature-type">Function</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="onsyncstart" class="tsd-anchor"></a>
<h3>on<wbr>Sync<wbr>Start</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">on<wbr>Sync<wbr>Start<span class="tsd-signature-symbol">(</span>handler<span class="tsd-signature-symbol">: </span><a href="../globals.html#syncstarthandler" class="tsd-signature-type">SyncStartHandler</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the synchronisation process is starting.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>handler: <a href="../globals.html#syncstarthandler" class="tsd-signature-type">SyncStartHandler</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/disposable.html" class="tsd-signature-type">Disposable</a><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="selectedfolder" class="tsd-anchor"></a>
<h3>selected<wbr>Folder</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">selected<wbr>Folder<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">FolderEntity</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets the currently selected folder. In some cases, for example during
search or when viewing a tag, no folder is actually selected in the user
interface. In that case, that function would return the last selected
folder.</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">FolderEntity</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="selectednote" class="tsd-anchor"></a>
<h3>selected<wbr>Note</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">selected<wbr>Note<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets the currently selected note</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class">
<a name="selectednoteids" class="tsd-anchor"></a>
<h3>selected<wbr>Note<wbr>Ids</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
<li class="tsd-signature tsd-kind-icon">selected<wbr>Note<wbr>Ids<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Gets the IDs of the selected notes (can be zero, one, or many). Use the data API to retrieve information about these notes.</p>
</div>
</div>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class">
<a href="joplinworkspace.html" class="tsd-kind-icon">joplin.workspace</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class">
<a href="joplinworkspace.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onnotealarmtrigger" class="tsd-kind-icon">on<wbr>Note<wbr>Alarm<wbr>Trigger</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onnotechange" class="tsd-kind-icon">on<wbr>Note<wbr>Change</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onnotecontentchange" class="tsd-kind-icon">on<wbr>Note<wbr>Content<wbr>Change</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onnoteselectionchange" class="tsd-kind-icon">on<wbr>Note<wbr>Selection<wbr>Change</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onsynccomplete" class="tsd-kind-icon">on<wbr>Sync<wbr>Complete</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#onsyncstart" class="tsd-kind-icon">on<wbr>Sync<wbr>Start</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#selectedfolder" class="tsd-kind-icon">selected<wbr>Folder</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#selectednote" class="tsd-kind-icon">selected<wbr>Note</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class">
<a href="joplinworkspace.html#selectednoteids" class="tsd-kind-icon">selected<wbr>Note<wbr>Ids</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,166 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>AppType | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="apptype.html">AppType</a>
</li>
</ul>
<h1><!-- Enumeration -->AppType</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="apptype.html#cli" class="tsd-kind-icon">Cli</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="apptype.html#desktop" class="tsd-kind-icon">Desktop</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="apptype.html#mobile" class="tsd-kind-icon">Mobile</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="cli" class="tsd-anchor"></a>
<h3>Cli</h3>
<div class="tsd-signature tsd-kind-icon">Cli<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;cli&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="desktop" class="tsd-anchor"></a>
<h3>Desktop</h3>
<div class="tsd-signature tsd-kind-icon">Desktop<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;desktop&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="mobile" class="tsd-anchor"></a>
<h3>Mobile</h3>
<div class="tsd-signature tsd-kind-icon">Mobile<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;mobile&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="apptype.html" class="tsd-kind-icon">AppType</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="apptype.html#cli" class="tsd-kind-icon">Cli</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="apptype.html#desktop" class="tsd-kind-icon">Desktop</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="apptype.html#mobile" class="tsd-kind-icon">Mobile</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,305 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ContentScriptType | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="contentscripttype.html">ContentScriptType</a>
</li>
</ul>
<h1><!-- Enumeration -->ContentScriptType</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="contentscripttype.html#codemirrorplugin" class="tsd-kind-icon">Code<wbr>Mirror<wbr>Plugin</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="contentscripttype.html#markdownitplugin" class="tsd-kind-icon">Markdown<wbr>ItPlugin</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="codemirrorplugin" class="tsd-anchor"></a>
<h3>Code<wbr>Mirror<wbr>Plugin</h3>
<div class="tsd-signature tsd-kind-icon">Code<wbr>Mirror<wbr>Plugin<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;codeMirrorPlugin&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers a new CodeMirror plugin, which should follow the template
below.</p>
</div>
<pre><code class="language-javascript"><span class="hljs-built_in">module</span>.exports = {
<span class="hljs-attr">default</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">context</span>) </span>{
<span class="hljs-keyword">return</span> {
<span class="hljs-attr">plugin</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">CodeMirror</span>) </span>{
<span class="hljs-comment">// ...</span>
},
<span class="hljs-attr">codeMirrorResources</span>: [],
<span class="hljs-attr">codeMirrorOptions</span>: {
<span class="hljs-comment">// ...</span>
},
<span class="hljs-attr">assets</span>: {
<span class="hljs-comment">// ...</span>
},
}
}
}</code></pre>
<ul>
<li><p>The <code>context</code> argument is currently unused but could be used later on
to provide access to your own plugin so that the content script and
plugin can communicate.</p>
</li>
<li><p>The <code>plugin</code> key is your CodeMirror plugin. This is where you can
register new commands with CodeMirror or interact with the CodeMirror
instance as needed.</p>
</li>
<li><p>The <code>codeMirrorResources</code> key is an array of CodeMirror resources that
will be loaded and attached to the CodeMirror module. These are made up
of addons, keymaps, and modes. For example, for a plugin that want&#39;s to
enable clojure highlighting in code blocks. <code>codeMirrorResources</code> would
be set to <code>[&#39;mode/clojure/clojure&#39;]</code>.</p>
</li>
<li><p>The <code>codeMirrorOptions</code> key contains all the
<a href="https://codemirror.net/doc/manual.html#config">CodeMirror</a> options
that will be set or changed by this plugin. New options can alse be
declared via
<a href="https://codemirror.net/doc/manual.html#defineOption"><code>CodeMirror.defineOption</code></a>,
and then have their value set here. For example, a plugin that enables
line numbers would set <code>codeMirrorOptions</code> to <code>{&#39;lineNumbers&#39;: true}</code>.</p>
</li>
<li><p>Using the <strong>optional</strong> <code>assets</code> key you may specify <strong>only</strong> CSS assets
that should be loaded in the rendered HTML document. Check for example
the Joplin [Mermaid
plugin](<a href="https://github.com/laurent22/joplin/blob/dev/packages/renderer/MdToHtml/rules/mermaid.ts">https://github.com/laurent22/joplin/blob/dev/packages/renderer/MdToHtml/rules/mermaid.ts</a>)
to see how the data should be structured.</p>
</li>
</ul>
<p>One of the <code>plugin</code>, <code>codeMirrorResources</code>, or <code>codeMirrorOptions</code> keys
must be provided for the plugin to be valid. Having multiple or all
provided is also okay.</p>
<p>See also the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/codemirror_content_script">demo
plugin</a>
for an example of all these keys being used in one plugin.</p>
<a href="#posting-messages-from-the-content-script-to-your-plugin" id="posting-messages-from-the-content-script-to-your-plugin" style="color: inherit; text-decoration: none;">
<h2>Posting messages from the content script to your plugin</h2>
</a>
<p>In order to post messages to the plugin, you can use the postMessage
function passed to the <a href="../interfaces/contentscriptcontext.html">context</a>.</p>
<pre><code class="language-javascript"><span class="hljs-keyword">const</span> response = <span class="hljs-keyword">await</span> context.postMessage(<span class="hljs-string">&#x27;messageFromCodeMirrorContentScript&#x27;</span>);</code></pre>
<p>When you post a message, the plugin can send back a <code>response</code> thus
allowing two-way communication:</p>
<pre><code class="language-javascript"><span class="hljs-keyword">await</span> joplin.contentScripts.onMessage(contentScriptId, <span class="hljs-function">(<span class="hljs-params">message</span>) =&gt;</span> {
<span class="hljs-comment">// Process message</span>
<span class="hljs-keyword">return</span> response; <span class="hljs-comment">// Can be any object, string or number</span>
});</code></pre>
<p>See <a href="../classes/joplincontentscripts.html#onmessage">JoplinContentScripts.onMessage</a> for more details, as well as
the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/post_messages">postMessage
demo</a>.</p>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="markdownitplugin" class="tsd-anchor"></a>
<h3>Markdown<wbr>ItPlugin</h3>
<div class="tsd-signature tsd-kind-icon">Markdown<wbr>ItPlugin<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;markdownItPlugin&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Registers a new Markdown-It plugin, which should follow the template
below.</p>
</div>
<pre><code class="language-javascript"><span class="hljs-built_in">module</span>.exports = {
<span class="hljs-attr">default</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">context</span>) </span>{
<span class="hljs-keyword">return</span> {
<span class="hljs-attr">plugin</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">markdownIt, options</span>) </span>{
<span class="hljs-comment">// ...</span>
},
<span class="hljs-attr">assets</span>: {
<span class="hljs-comment">// ...</span>
},
}
}
}</code></pre>
<p>See <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/content_script">the
demo</a>
for a simple Markdown-it plugin example.</p>
<a href="#exported-members" id="exported-members" style="color: inherit; text-decoration: none;">
<h2>Exported members</h2>
</a>
<ul>
<li><p>The <code>context</code> argument is currently unused but could be used later on
to provide access to your own plugin so that the content script and
plugin can communicate.</p>
</li>
<li><p>The <strong>required</strong> <code>plugin</code> key is the actual Markdown-It plugin - check
the <a href="https://github.com/markdown-it/markdown-it">official doc</a> for more
information. The <code>options</code> parameter is of type
<a href="https://github.com/laurent22/joplin/blob/dev/packages/renderer/MdToHtml.ts">RuleOptions</a>,
which contains a number of options, mostly useful for Joplin&#39;s internal
code.</p>
</li>
<li><p>Using the <strong>optional</strong> <code>assets</code> key you may specify assets such as JS
or CSS that should be loaded in the rendered HTML document. Check for
example the Joplin [Mermaid
plugin](<a href="https://github.com/laurent22/joplin/blob/dev/packages/renderer/MdToHtml/rules/mermaid.ts">https://github.com/laurent22/joplin/blob/dev/packages/renderer/MdToHtml/rules/mermaid.ts</a>)
to see how the data should be structured.</p>
</li>
</ul>
<a href="#posting-messages-from-the-content-script-to-your-plugin" id="posting-messages-from-the-content-script-to-your-plugin" style="color: inherit; text-decoration: none;">
<h2>Posting messages from the content script to your plugin</h2>
</a>
<p>The application provides the following function to allow executing
commands from the rendered HTML code:</p>
<pre><code class="language-javascript"><span class="hljs-keyword">const</span> response = <span class="hljs-keyword">await</span> webviewApi.postMessage(contentScriptId, message);</code></pre>
<ul>
<li><code>contentScriptId</code> is the ID you&#39;ve defined when you registered the
content script. You can retrieve it from the
<a href="../interfaces/contentscriptcontext.html">context</a>.</li>
<li><code>message</code> can be any basic JavaScript type (number, string, plain
object), but it cannot be a function or class instance.</li>
</ul>
<p>When you post a message, the plugin can send back a <code>response</code> thus
allowing two-way communication:</p>
<pre><code class="language-javascript"><span class="hljs-keyword">await</span> joplin.contentScripts.onMessage(contentScriptId, <span class="hljs-function">(<span class="hljs-params">message</span>) =&gt;</span> {
<span class="hljs-comment">// Process message</span>
<span class="hljs-keyword">return</span> response; <span class="hljs-comment">// Can be any object, string or number</span>
});</code></pre>
<p>See <a href="../classes/joplincontentscripts.html#onmessage">JoplinContentScripts.onMessage</a> for more details, as well as
the <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/post_messages">postMessage
demo</a>.</p>
<a href="#registering-an-existing-markdown-it-plugin" id="registering-an-existing-markdown-it-plugin" style="color: inherit; text-decoration: none;">
<h2>Registering an existing Markdown-it plugin</h2>
</a>
<p>To include a regular Markdown-It plugin, that doesn&#39;t make use of any
Joplin-specific features, you would simply create a file such as this:</p>
<pre><code class="language-javascript"><span class="hljs-built_in">module</span>.exports = {
<span class="hljs-attr">default</span>: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">context</span>) </span>{
<span class="hljs-keyword">return</span> {
<span class="hljs-attr">plugin</span>: <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;markdown-it-toc-done-right&#x27;</span>);
}
}
}</code></pre>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="contentscripttype.html" class="tsd-kind-icon">ContentScriptType</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="contentscripttype.html#codemirrorplugin" class="tsd-kind-icon">Code<wbr>Mirror<wbr>Plugin</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="contentscripttype.html#markdownitplugin" class="tsd-kind-icon">Markdown<wbr>ItPlugin</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>FileSystemItem | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="filesystemitem.html">FileSystemItem</a>
</li>
</ul>
<h1><!-- Enumeration -->FileSystemItem</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="filesystemitem.html#directory" class="tsd-kind-icon">Directory</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="filesystemitem.html#file" class="tsd-kind-icon">File</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="directory" class="tsd-anchor"></a>
<h3>Directory</h3>
<div class="tsd-signature tsd-kind-icon">Directory<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;directory&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="file" class="tsd-anchor"></a>
<h3>File</h3>
<div class="tsd-signature tsd-kind-icon">File<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;file&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="filesystemitem.html" class="tsd-kind-icon">FileSystemItem</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="filesystemitem.html#directory" class="tsd-kind-icon">Directory</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="filesystemitem.html#file" class="tsd-kind-icon">File</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ImportModuleOutputFormat | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="importmoduleoutputformat.html">ImportModuleOutputFormat</a>
</li>
</ul>
<h1><!-- Enumeration -->ImportModuleOutputFormat</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="importmoduleoutputformat.html#html" class="tsd-kind-icon">Html</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="importmoduleoutputformat.html#markdown" class="tsd-kind-icon">Markdown</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="html" class="tsd-anchor"></a>
<h3>Html</h3>
<div class="tsd-signature tsd-kind-icon">Html<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;html&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="markdown" class="tsd-anchor"></a>
<h3>Markdown</h3>
<div class="tsd-signature tsd-kind-icon">Markdown<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;md&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="importmoduleoutputformat.html" class="tsd-kind-icon">ImportModuleOutputFormat</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="importmoduleoutputformat.html#html" class="tsd-kind-icon">Html</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="importmoduleoutputformat.html#markdown" class="tsd-kind-icon">Markdown</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,166 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ItemChangeEventType | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="itemchangeeventtype.html">ItemChangeEventType</a>
</li>
</ul>
<h1><!-- Enumeration -->ItemChangeEventType</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="itemchangeeventtype.html#create" class="tsd-kind-icon">Create</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="itemchangeeventtype.html#delete" class="tsd-kind-icon">Delete</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="itemchangeeventtype.html#update" class="tsd-kind-icon">Update</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="create" class="tsd-anchor"></a>
<h3>Create</h3>
<div class="tsd-signature tsd-kind-icon">Create<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 1</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="delete" class="tsd-anchor"></a>
<h3>Delete</h3>
<div class="tsd-signature tsd-kind-icon">Delete<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 3</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="update" class="tsd-anchor"></a>
<h3>Update</h3>
<div class="tsd-signature tsd-kind-icon">Update<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 2</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="itemchangeeventtype.html" class="tsd-kind-icon">ItemChangeEventType</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="itemchangeeventtype.html#create" class="tsd-kind-icon">Create</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="itemchangeeventtype.html#delete" class="tsd-kind-icon">Delete</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="itemchangeeventtype.html#update" class="tsd-kind-icon">Update</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,288 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MenuItemLocation | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="menuitemlocation.html">MenuItemLocation</a>
</li>
</ul>
<h1><!-- Enumeration -->MenuItemLocation</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#context" class="tsd-kind-icon">Context</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#edit" class="tsd-kind-icon">Edit</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#editorcontextmenu" class="tsd-kind-icon">Editor<wbr>Context<wbr>Menu</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#file" class="tsd-kind-icon">File</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#foldercontextmenu" class="tsd-kind-icon">Folder<wbr>Context<wbr>Menu</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#help" class="tsd-kind-icon">Help</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#note" class="tsd-kind-icon">Note</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#notelistcontextmenu" class="tsd-kind-icon">Note<wbr>List<wbr>Context<wbr>Menu</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#tagcontextmenu" class="tsd-kind-icon">Tag<wbr>Context<wbr>Menu</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#tools" class="tsd-kind-icon">Tools</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="menuitemlocation.html#view" class="tsd-kind-icon">View</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="context" class="tsd-anchor"></a>
<h3>Context</h3>
<div class="tsd-signature tsd-kind-icon">Context<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;context&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<dl class="tsd-comment-tags">
<dt>deprecated</dt>
<dd><p>Do not use - same as NoteListContextMenu</p>
</dd>
</dl>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="edit" class="tsd-anchor"></a>
<h3>Edit</h3>
<div class="tsd-signature tsd-kind-icon">Edit<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;edit&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="editorcontextmenu" class="tsd-anchor"></a>
<h3>Editor<wbr>Context<wbr>Menu</h3>
<div class="tsd-signature tsd-kind-icon">Editor<wbr>Context<wbr>Menu<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;editorContextMenu&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="file" class="tsd-anchor"></a>
<h3>File</h3>
<div class="tsd-signature tsd-kind-icon">File<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;file&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="foldercontextmenu" class="tsd-anchor"></a>
<h3>Folder<wbr>Context<wbr>Menu</h3>
<div class="tsd-signature tsd-kind-icon">Folder<wbr>Context<wbr>Menu<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;folderContextMenu&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>When a command is called from a folder context menu, the
command will receive the following arguments:</p>
</div>
<ul>
<li><code>folderId:string</code>: ID of the folder that was right-clicked on</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="help" class="tsd-anchor"></a>
<h3>Help</h3>
<div class="tsd-signature tsd-kind-icon">Help<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;help&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="note" class="tsd-anchor"></a>
<h3>Note</h3>
<div class="tsd-signature tsd-kind-icon">Note<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;note&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="notelistcontextmenu" class="tsd-anchor"></a>
<h3>Note<wbr>List<wbr>Context<wbr>Menu</h3>
<div class="tsd-signature tsd-kind-icon">Note<wbr>List<wbr>Context<wbr>Menu<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;noteListContextMenu&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>When a command is called from the note list context menu, the
command will receive the following arguments:</p>
</div>
<ul>
<li><code>noteIds:string[]</code>: IDs of the notes that were right-clicked on.</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="tagcontextmenu" class="tsd-anchor"></a>
<h3>Tag<wbr>Context<wbr>Menu</h3>
<div class="tsd-signature tsd-kind-icon">Tag<wbr>Context<wbr>Menu<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;tagContextMenu&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>When a command is called from a tag context menu, the
command will receive the following arguments:</p>
</div>
<ul>
<li><code>tagId:string</code>: ID of the tag that was right-clicked on</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="tools" class="tsd-anchor"></a>
<h3>Tools</h3>
<div class="tsd-signature tsd-kind-icon">Tools<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;tools&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="view" class="tsd-anchor"></a>
<h3>View</h3>
<div class="tsd-signature tsd-kind-icon">View<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;view&quot;</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="menuitemlocation.html" class="tsd-kind-icon">MenuItemLocation</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#context" class="tsd-kind-icon">Context</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#edit" class="tsd-kind-icon">Edit</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#editorcontextmenu" class="tsd-kind-icon">Editor<wbr>Context<wbr>Menu</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#file" class="tsd-kind-icon">File</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#foldercontextmenu" class="tsd-kind-icon">Folder<wbr>Context<wbr>Menu</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#help" class="tsd-kind-icon">Help</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#note" class="tsd-kind-icon">Note</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#notelistcontextmenu" class="tsd-kind-icon">Note<wbr>List<wbr>Context<wbr>Menu</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#tagcontextmenu" class="tsd-kind-icon">Tag<wbr>Context<wbr>Menu</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#tools" class="tsd-kind-icon">Tools</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="menuitemlocation.html#view" class="tsd-kind-icon">View</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,199 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SettingItemType | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="settingitemtype.html">SettingItemType</a>
</li>
</ul>
<h1><!-- Enumeration -->SettingItemType</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#array" class="tsd-kind-icon">Array</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#bool" class="tsd-kind-icon">Bool</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#button" class="tsd-kind-icon">Button</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#int" class="tsd-kind-icon">Int</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#object" class="tsd-kind-icon">Object</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingitemtype.html#string" class="tsd-kind-icon">String</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="array" class="tsd-anchor"></a>
<h3>Array</h3>
<div class="tsd-signature tsd-kind-icon">Array<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 4</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="bool" class="tsd-anchor"></a>
<h3>Bool</h3>
<div class="tsd-signature tsd-kind-icon">Bool<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 3</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="button" class="tsd-anchor"></a>
<h3>Button</h3>
<div class="tsd-signature tsd-kind-icon">Button<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 6</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="int" class="tsd-anchor"></a>
<h3>Int</h3>
<div class="tsd-signature tsd-kind-icon">Int<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 1</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="object" class="tsd-anchor"></a>
<h3>Object</h3>
<div class="tsd-signature tsd-kind-icon">Object<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 5</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="string" class="tsd-anchor"></a>
<h3>String</h3>
<div class="tsd-signature tsd-kind-icon">String<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 2</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="settingitemtype.html" class="tsd-kind-icon">SettingItemType</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#array" class="tsd-kind-icon">Array</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#bool" class="tsd-kind-icon">Bool</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#button" class="tsd-kind-icon">Button</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#int" class="tsd-kind-icon">Int</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#object" class="tsd-kind-icon">Object</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingitemtype.html#string" class="tsd-kind-icon">String</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,155 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SettingStorage | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="settingstorage.html">SettingStorage</a>
</li>
</ul>
<h1><!-- Enumeration -->SettingStorage</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingstorage.html#database" class="tsd-kind-icon">Database</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="settingstorage.html#file" class="tsd-kind-icon">File</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="database" class="tsd-anchor"></a>
<h3>Database</h3>
<div class="tsd-signature tsd-kind-icon">Database<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 1</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="file" class="tsd-anchor"></a>
<h3>File</h3>
<div class="tsd-signature tsd-kind-icon">File<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = 2</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="settingstorage.html" class="tsd-kind-icon">SettingStorage</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingstorage.html#database" class="tsd-kind-icon">Database</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="settingstorage.html#file" class="tsd-kind-icon">File</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,165 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ToolbarButtonLocation | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="toolbarbuttonlocation.html">ToolbarButtonLocation</a>
</li>
</ul>
<h1><!-- Enumeration -->ToolbarButtonLocation</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumeration members</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="toolbarbuttonlocation.html#editortoolbar" class="tsd-kind-icon">Editor<wbr>Toolbar</a></li>
<li class="tsd-kind-enum-member tsd-parent-kind-enum"><a href="toolbarbuttonlocation.html#notetoolbar" class="tsd-kind-icon">Note<wbr>Toolbar</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Enumeration members</h2>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="editortoolbar" class="tsd-anchor"></a>
<h3>Editor<wbr>Toolbar</h3>
<div class="tsd-signature tsd-kind-icon">Editor<wbr>Toolbar<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;editorToolbar&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This toolbar is right above the text editor. It applies to the note body only.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-enum-member tsd-parent-kind-enum">
<a name="notetoolbar" class="tsd-anchor"></a>
<h3>Note<wbr>Toolbar</h3>
<div class="tsd-signature tsd-kind-icon">Note<wbr>Toolbar<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol"> = &quot;noteToolbar&quot;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This toolbar in the top right corner of the application. It applies to the note as a whole, including its metadata.</p>
</div>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-enum">
<a href="toolbarbuttonlocation.html" class="tsd-kind-icon">ToolbarButtonLocation</a>
<ul>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="toolbarbuttonlocation.html#editortoolbar" class="tsd-kind-icon">Editor<wbr>Toolbar</a>
</li>
<li class=" tsd-kind-enum-member tsd-parent-kind-enum">
<a href="toolbarbuttonlocation.html#notetoolbar" class="tsd-kind-icon">Note<wbr>Toolbar</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,563 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base=".">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="globals.html">Globals</a>
</li>
-->
</ul>
<h1><!-- -->Joplin Plugin API Documentation</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Enumerations</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-enum"><a href="enums/apptype.html" class="tsd-kind-icon">App<wbr>Type</a></li>
<li class="tsd-kind-enum"><a href="enums/contentscripttype.html" class="tsd-kind-icon">Content<wbr>Script<wbr>Type</a></li>
<li class="tsd-kind-enum"><a href="enums/filesystemitem.html" class="tsd-kind-icon">File<wbr>System<wbr>Item</a></li>
<li class="tsd-kind-enum"><a href="enums/importmoduleoutputformat.html" class="tsd-kind-icon">Import<wbr>Module<wbr>Output<wbr>Format</a></li>
<li class="tsd-kind-enum"><a href="enums/itemchangeeventtype.html" class="tsd-kind-icon">Item<wbr>Change<wbr>Event<wbr>Type</a></li>
<li class="tsd-kind-enum"><a href="enums/menuitemlocation.html" class="tsd-kind-icon">Menu<wbr>Item<wbr>Location</a></li>
<li class="tsd-kind-enum"><a href="enums/settingitemtype.html" class="tsd-kind-icon">Setting<wbr>Item<wbr>Type</a></li>
<li class="tsd-kind-enum"><a href="enums/settingstorage.html" class="tsd-kind-icon">Setting<wbr>Storage</a></li>
<li class="tsd-kind-enum"><a href="enums/toolbarbuttonlocation.html" class="tsd-kind-icon">Toolbar<wbr>Button<wbr>Location</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Classes</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-class"><a href="classes/joplin.html" class="tsd-kind-icon">Joplin</a></li>
<li class="tsd-kind-class"><a href="classes/joplinclipboard.html" class="tsd-kind-icon">Joplin<wbr>Clipboard</a></li>
<li class="tsd-kind-class"><a href="classes/joplincommands.html" class="tsd-kind-icon">Joplin<wbr>Commands</a></li>
<li class="tsd-kind-class"><a href="classes/joplincontentscripts.html" class="tsd-kind-icon">Joplin<wbr>Content<wbr>Scripts</a></li>
<li class="tsd-kind-class"><a href="classes/joplindata.html" class="tsd-kind-icon">Joplin<wbr>Data</a></li>
<li class="tsd-kind-class"><a href="classes/joplininterop.html" class="tsd-kind-icon">Joplin<wbr>Interop</a></li>
<li class="tsd-kind-class"><a href="classes/joplinplugins.html" class="tsd-kind-icon">Joplin<wbr>Plugins</a></li>
<li class="tsd-kind-class"><a href="classes/joplinsettings.html" class="tsd-kind-icon">Joplin<wbr>Settings</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviews.html" class="tsd-kind-icon">Joplin<wbr>Views</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviewsdialogs.html" class="tsd-kind-icon">Joplin<wbr>Views<wbr>Dialogs</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviewsmenuitems.html" class="tsd-kind-icon">Joplin<wbr>Views<wbr>Menu<wbr>Items</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviewsmenus.html" class="tsd-kind-icon">Joplin<wbr>Views<wbr>Menus</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviewspanels.html" class="tsd-kind-icon">Joplin<wbr>Views<wbr>Panels</a></li>
<li class="tsd-kind-class"><a href="classes/joplinviewstoolbarbuttons.html" class="tsd-kind-icon">Joplin<wbr>Views<wbr>Toolbar<wbr>Buttons</a></li>
<li class="tsd-kind-class"><a href="classes/joplinwindow.html" class="tsd-kind-icon">Joplin<wbr>Window</a></li>
<li class="tsd-kind-class"><a href="classes/joplinworkspace.html" class="tsd-kind-icon">Joplin<wbr>Workspace</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Interfaces</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-interface"><a href="interfaces/buttonspec.html" class="tsd-kind-icon">Button<wbr>Spec</a></li>
<li class="tsd-kind-interface"><a href="interfaces/changeevent.html" class="tsd-kind-icon">Change<wbr>Event</a></li>
<li class="tsd-kind-interface"><a href="interfaces/command.html" class="tsd-kind-icon">Command</a></li>
<li class="tsd-kind-interface"><a href="interfaces/contentscriptcontext.html" class="tsd-kind-icon">Content<wbr>Script<wbr>Context</a></li>
<li class="tsd-kind-interface"><a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">Create<wbr>Menu<wbr>Item<wbr>Options</a></li>
<li class="tsd-kind-interface"><a href="interfaces/dialogresult.html" class="tsd-kind-icon">Dialog<wbr>Result</a></li>
<li class="tsd-kind-interface"><a href="interfaces/disposable.html" class="tsd-kind-icon">Disposable</a></li>
<li class="tsd-kind-interface"><a href="interfaces/editorcommand.html" class="tsd-kind-icon">Editor<wbr>Command</a></li>
<li class="tsd-kind-interface"><a href="interfaces/exportcontext.html" class="tsd-kind-icon">Export<wbr>Context</a></li>
<li class="tsd-kind-interface"><a href="interfaces/exportmodule.html" class="tsd-kind-icon">Export<wbr>Module</a></li>
<li class="tsd-kind-interface"><a href="interfaces/exportoptions.html" class="tsd-kind-icon">Export<wbr>Options</a></li>
<li class="tsd-kind-interface"><a href="interfaces/implementation.html" class="tsd-kind-icon">Implementation</a></li>
<li class="tsd-kind-interface"><a href="interfaces/importcontext.html" class="tsd-kind-icon">Import<wbr>Context</a></li>
<li class="tsd-kind-interface"><a href="interfaces/importmodule.html" class="tsd-kind-icon">Import<wbr>Module</a></li>
<li class="tsd-kind-interface"><a href="interfaces/itemchangeevent.html" class="tsd-kind-icon">Item<wbr>Change<wbr>Event</a></li>
<li class="tsd-kind-interface"><a href="interfaces/menuitem.html" class="tsd-kind-icon">Menu<wbr>Item</a></li>
<li class="tsd-kind-interface"><a href="interfaces/script.html" class="tsd-kind-icon">Script</a></li>
<li class="tsd-kind-interface"><a href="interfaces/settingitem.html" class="tsd-kind-icon">Setting<wbr>Item</a></li>
<li class="tsd-kind-interface"><a href="interfaces/settingsection.html" class="tsd-kind-icon">Setting<wbr>Section</a></li>
<li class="tsd-kind-interface"><a href="interfaces/syncstartevent.html" class="tsd-kind-icon">Sync<wbr>Start<wbr>Event</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Type aliases</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-type-alias"><a href="globals.html#buttonid" class="tsd-kind-icon">Button<wbr>Id</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#changehandler" class="tsd-kind-icon">Change<wbr>Handler</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#itemchangehandler" class="tsd-kind-icon">Item<wbr>Change<wbr>Handler</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#path" class="tsd-kind-icon">Path</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#postmessagehandler" class="tsd-kind-icon">Post<wbr>Message<wbr>Handler</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#syncstarthandler" class="tsd-kind-icon">Sync<wbr>Start<wbr>Handler</a></li>
<li class="tsd-kind-type-alias"><a href="globals.html#viewhandle" class="tsd-kind-icon">View<wbr>Handle</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Variables</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-variable"><a href="globals.html#logger" class="tsd-kind-icon">logger</a></li>
<li class="tsd-kind-variable"><a href="globals.html#registersettingallowedpluginids" class="tsd-kind-icon">register<wbr>Setting<wbr>Allowed<wbr>Plugin<wbr>Ids</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Functions</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-function"><a href="globals.html#iscontextmenuitemlocation" class="tsd-kind-icon">is<wbr>Context<wbr>Menu<wbr>Item<wbr>Location</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Type aliases</h2>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="buttonid" class="tsd-anchor"></a>
<h3>Button<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">Button<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="changehandler" class="tsd-anchor"></a>
<h3>Change<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">Change<wbr>Handler<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/changeevent.html" class="tsd-signature-type">ChangeEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/changeevent.html" class="tsd-signature-type">ChangeEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <a href="interfaces/changeevent.html" class="tsd-signature-type">ChangeEvent</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-->
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="itemchangehandler" class="tsd-anchor"></a>
<h3>Item<wbr>Change<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">Item<wbr>Change<wbr>Handler<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/itemchangeevent.html" class="tsd-signature-type">ItemChangeEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/itemchangeevent.html" class="tsd-signature-type">ItemChangeEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <a href="interfaces/itemchangeevent.html" class="tsd-signature-type">ItemChangeEvent</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-->
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="path" class="tsd-anchor"></a>
<h3>Path</h3>
<div class="tsd-signature tsd-kind-icon">Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>An array of at least one element and at most three elements.</p>
</div>
<ul>
<li><strong>[0]</strong>: Resource name (eg. &quot;notes&quot;, &quot;folders&quot;, &quot;tags&quot;, etc.)</li>
<li><strong>[1]</strong>: (Optional) Resource ID.</li>
<li><strong>[2]</strong>: (Optional) Resource link.</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="postmessagehandler" class="tsd-anchor"></a>
<h3>Post<wbr>Message<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">Post<wbr>Message<wbr>Handler<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>message<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>message: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="syncstarthandler" class="tsd-anchor"></a>
<h3>Sync<wbr>Start<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">Sync<wbr>Start<wbr>Handler<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/syncstartevent.html" class="tsd-signature-type">SyncStartEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-type-declaration">
<h4>Type declaration</h4>
<ul class="tsd-parameters">
<li class="tsd-parameter-signature">
<ul class="tsd-signatures tsd-kind-type-literal tsd-parent-kind-type-alias">
<li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><a href="interfaces/syncstartevent.html" class="tsd-signature-type">SyncStartEvent</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <a href="interfaces/syncstartevent.html" class="tsd-signature-type">SyncStartEvent</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-->
</li>
</ul>
</li>
</ul>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-type-alias">
<a name="viewhandle" class="tsd-anchor"></a>
<h3>View<wbr>Handle</h3>
<div class="tsd-signature tsd-kind-icon">View<wbr>Handle<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Variables</h2>
<section class="tsd-panel tsd-member tsd-kind-variable">
<a name="logger" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagConst">Const</span> logger</h3>
<div class="tsd-signature tsd-kind-icon">logger<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">LoggerWrapper</span><span class="tsd-signature-symbol"> = Logger.create(&#x27;joplin.plugins&#x27;)</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-variable">
<a name="registersettingallowedpluginids" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagConst">Const</span> register<wbr>Setting<wbr>Allowed<wbr>Plugin<wbr>Ids</h3>
<div class="tsd-signature tsd-kind-icon">register<wbr>Setting<wbr>Allowed<wbr>Plugin<wbr>Ids<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = [&#x27;b53da1f6-868c-468d-b60c-2897a27166ac&#x27;,&#x27;com.andrejilderda.macOSTheme&#x27;,&#x27;com.export-to-ssg.aman-d-1-n-only&#x27;,&#x27;com.github.BeatLink.joplin-plugin-untagged&#x27;,&#x27;com.github.joplin.kanban&#x27;,&#x27;com.github.marc0l92.joplin-plugin-jira-issue&#x27;,&#x27;com.github.uphy.PlantUmlPlugin&#x27;,&#x27;com.gitlab.BeatLink.joplin-plugin-repeating-todos&#x27;,&#x27;com.joplin_plugin.nlr&#x27;,&#x27;com.lki.homenote&#x27;,&#x27;com.plugin.randomNotePlugin&#x27;,&#x27;com.shantanugoel.JoplinCMLineNumbersPlugin&#x27;,&#x27;com.whatever.inline-tags&#x27;,&#x27;com.whatever.quick-links&#x27;,&#x27;com.xUser5000.bibtex&#x27;,&#x27;cx.evermeet.tessus.menu-shortcut-toolbar&#x27;,&#x27;fd117a99-b165-4824-893c-5825439a842d&#x27;,&#x27;io.github.jackgruber.backup&#x27;,&#x27;io.github.jackgruber.combine-notes&#x27;,&#x27;io.github.jackgruber.copytags&#x27;,&#x27;io.github.jackgruber.hotfolder&#x27;,&#x27;io.github.jackgruber.note-overview&#x27;,&#x27;io.treymo.LinkGraph&#x27;,&#x27;joplin-insert-date&#x27;,&#x27;joplin-plugin-conflict-resolution&#x27;,&#x27;joplin.plugin.ambrt.backlinksToNote&#x27;,&#x27;joplin.plugin.ambrt.convertToNewNote&#x27;,&#x27;joplin.plugin.ambrt.copyNoteLink&#x27;,&#x27;joplin.plugin.ambrt.embedSearch&#x27;,&#x27;joplin.plugin.ambrt.fold-cm&#x27;,&#x27;joplin.plugin.ambrt.goToItem&#x27;,&#x27;joplin.plugin.anki-sync&#x27;,&#x27;joplin.plugin.benji.favorites&#x27;,&#x27;joplin.plugin.benji.persistentLayout&#x27;,&#x27;joplin.plugin.benji.quick-move&#x27;,&#x27;joplin.plugin.forcewake.tags-generator&#x27;,&#x27;joplin.plugin.note.tabs&#x27;,&#x27;joplin.plugin.quick.html.tags&#x27;,&#x27;joplin.plugin.spoiler.cards&#x27;,&#x27;joplin.plugin.templates&#x27;,&#x27;net.rmusin.joplin-table-formatter&#x27;,&#x27;net.rmusin.resource-search&#x27;,&#x27;org.joplinapp.plugins.AbcSheetMusic&#x27;,&#x27;org.joplinapp.plugins.admonition&#x27;,&#x27;org.joplinapp.plugins.ToggleSidebars&#x27;,&#x27;osw.joplin.markdowncalc&#x27;,&#x27;outline&#x27;,&#x27;plugin.azamahJunior.note-statistics&#x27;,&#x27;plugin.calebjohn.MathMode&#x27;,&#x27;plugin.calebjohn.rich-markdown&#x27;,]</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Functions</h2>
<section class="tsd-panel tsd-member tsd-kind-function">
<a name="iscontextmenuitemlocation" class="tsd-anchor"></a>
<h3>is<wbr>Context<wbr>Menu<wbr>Item<wbr>Location</h3>
<ul class="tsd-signatures tsd-kind-function">
<li class="tsd-signature tsd-kind-icon">is<wbr>Context<wbr>Menu<wbr>Item<wbr>Location<span class="tsd-signature-symbol">(</span>location<span class="tsd-signature-symbol">: </span><a href="enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>location: <a href="enums/menuitemlocation.html" class="tsd-signature-type">MenuItemLocation</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals current ">
<a href="globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-enum">
<a href="enums/apptype.html" class="tsd-kind-icon">AppType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/contentscripttype.html" class="tsd-kind-icon">ContentScriptType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/filesystemitem.html" class="tsd-kind-icon">FileSystemItem</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/importmoduleoutputformat.html" class="tsd-kind-icon">ImportModuleOutputFormat</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/itemchangeeventtype.html" class="tsd-kind-icon">ItemChangeEventType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/menuitemlocation.html" class="tsd-kind-icon">MenuItemLocation</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/settingitemtype.html" class="tsd-kind-icon">SettingItemType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/settingstorage.html" class="tsd-kind-icon">SettingStorage</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/toolbarbuttonlocation.html" class="tsd-kind-icon">ToolbarButtonLocation</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplin.html" class="tsd-kind-icon">joplin</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinclipboard.html" class="tsd-kind-icon">joplin.clipboard</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplincommands.html" class="tsd-kind-icon">joplin.commands</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplincontentscripts.html" class="tsd-kind-icon">joplin.contentScripts</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplindata.html" class="tsd-kind-icon">joplin.data</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplininterop.html" class="tsd-kind-icon">joplin.interop</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinplugins.html" class="tsd-kind-icon">joplin.plugins</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinsettings.html" class="tsd-kind-icon">joplin.settings</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviews.html" class="tsd-kind-icon">joplin.views</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsdialogs.html" class="tsd-kind-icon">joplin.views.dialogs</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsmenuitems.html" class="tsd-kind-icon">joplin.views.menuItems</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsmenus.html" class="tsd-kind-icon">joplin.views.menus</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewspanels.html" class="tsd-kind-icon">joplin.views.panels</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewstoolbarbuttons.html" class="tsd-kind-icon">joplin.views.toolbarButtons</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinwindow.html" class="tsd-kind-icon">joplin.window</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinworkspace.html" class="tsd-kind-icon">joplin.workspace</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/buttonspec.html" class="tsd-kind-icon">ButtonSpec</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/changeevent.html" class="tsd-kind-icon">ChangeEvent</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/command.html" class="tsd-kind-icon">Command</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/contentscriptcontext.html" class="tsd-kind-icon">ContentScriptContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/disposable.html" class="tsd-kind-icon">Disposable</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportcontext.html" class="tsd-kind-icon">ExportContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportmodule.html" class="tsd-kind-icon">ExportModule</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportoptions.html" class="tsd-kind-icon">ExportOptions</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/implementation.html" class="tsd-kind-icon">Implementation</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/importcontext.html" class="tsd-kind-icon">ImportContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/importmodule.html" class="tsd-kind-icon">ImportModule</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/itemchangeevent.html" class="tsd-kind-icon">ItemChangeEvent</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/menuitem.html" class="tsd-kind-icon">MenuItem</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/script.html" class="tsd-kind-icon">Script</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/settingitem.html" class="tsd-kind-icon">SettingItem</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/settingsection.html" class="tsd-kind-icon">SettingSection</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/syncstartevent.html" class="tsd-kind-icon">SyncStartEvent</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#buttonid" class="tsd-kind-icon">ButtonId</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#changehandler" class="tsd-kind-icon">ChangeHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#itemchangehandler" class="tsd-kind-icon">ItemChangeHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#path" class="tsd-kind-icon">Path</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#postmessagehandler" class="tsd-kind-icon">PostMessageHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#syncstarthandler" class="tsd-kind-icon">SyncStartHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#viewhandle" class="tsd-kind-icon">ViewHandle</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#iscontextmenuitemlocation" class="tsd-kind-icon">isContextMenuItemLocation</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,271 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base=".">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="globals.html">Globals</a>
</li>
-->
</ul>
<h1><!-- -->Joplin Plugin API Documentation</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<div class="tsd-panel tsd-typography">
<a href="#joplin-plugin-documentation" id="joplin-plugin-documentation" style="color: inherit; text-decoration: none;">
<h1>Joplin Plugin Documentation</h1>
</a>
<p>Welcome to Joplin Plugin Documentation</p>
</div>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
<li class=" tsd-kind-enum">
<a href="enums/apptype.html" class="tsd-kind-icon">AppType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/contentscripttype.html" class="tsd-kind-icon">ContentScriptType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/filesystemitem.html" class="tsd-kind-icon">FileSystemItem</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/importmoduleoutputformat.html" class="tsd-kind-icon">ImportModuleOutputFormat</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/itemchangeeventtype.html" class="tsd-kind-icon">ItemChangeEventType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/menuitemlocation.html" class="tsd-kind-icon">MenuItemLocation</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/settingitemtype.html" class="tsd-kind-icon">SettingItemType</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/settingstorage.html" class="tsd-kind-icon">SettingStorage</a>
</li>
<li class=" tsd-kind-enum">
<a href="enums/toolbarbuttonlocation.html" class="tsd-kind-icon">ToolbarButtonLocation</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplin.html" class="tsd-kind-icon">joplin</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinclipboard.html" class="tsd-kind-icon">joplin.clipboard</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplincommands.html" class="tsd-kind-icon">joplin.commands</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplincontentscripts.html" class="tsd-kind-icon">joplin.contentScripts</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplindata.html" class="tsd-kind-icon">joplin.data</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplininterop.html" class="tsd-kind-icon">joplin.interop</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinplugins.html" class="tsd-kind-icon">joplin.plugins</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinsettings.html" class="tsd-kind-icon">joplin.settings</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviews.html" class="tsd-kind-icon">joplin.views</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsdialogs.html" class="tsd-kind-icon">joplin.views.dialogs</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsmenuitems.html" class="tsd-kind-icon">joplin.views.menuItems</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewsmenus.html" class="tsd-kind-icon">joplin.views.menus</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewspanels.html" class="tsd-kind-icon">joplin.views.panels</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinviewstoolbarbuttons.html" class="tsd-kind-icon">joplin.views.toolbarButtons</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinwindow.html" class="tsd-kind-icon">joplin.window</a>
</li>
<li class=" tsd-kind-class">
<a href="classes/joplinworkspace.html" class="tsd-kind-icon">joplin.workspace</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/buttonspec.html" class="tsd-kind-icon">ButtonSpec</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/changeevent.html" class="tsd-kind-icon">ChangeEvent</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/command.html" class="tsd-kind-icon">Command</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/contentscriptcontext.html" class="tsd-kind-icon">ContentScriptContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/dialogresult.html" class="tsd-kind-icon">DialogResult</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/disposable.html" class="tsd-kind-icon">Disposable</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportcontext.html" class="tsd-kind-icon">ExportContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportmodule.html" class="tsd-kind-icon">ExportModule</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/exportoptions.html" class="tsd-kind-icon">ExportOptions</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/implementation.html" class="tsd-kind-icon">Implementation</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/importcontext.html" class="tsd-kind-icon">ImportContext</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/importmodule.html" class="tsd-kind-icon">ImportModule</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/itemchangeevent.html" class="tsd-kind-icon">ItemChangeEvent</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/menuitem.html" class="tsd-kind-icon">MenuItem</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/script.html" class="tsd-kind-icon">Script</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/settingitem.html" class="tsd-kind-icon">SettingItem</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/settingsection.html" class="tsd-kind-icon">SettingSection</a>
</li>
<li class=" tsd-kind-interface">
<a href="interfaces/syncstartevent.html" class="tsd-kind-icon">SyncStartEvent</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#buttonid" class="tsd-kind-icon">ButtonId</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#changehandler" class="tsd-kind-icon">ChangeHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#itemchangehandler" class="tsd-kind-icon">ItemChangeHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#path" class="tsd-kind-icon">Path</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#postmessagehandler" class="tsd-kind-icon">PostMessageHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#syncstarthandler" class="tsd-kind-icon">SyncStartHandler</a>
</li>
<li class=" tsd-kind-type-alias">
<a href="globals.html#viewhandle" class="tsd-kind-icon">ViewHandle</a>
</li>
<li class=" tsd-kind-function">
<a href="globals.html#iscontextmenuitemlocation" class="tsd-kind-icon">isContextMenuItemLocation</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,197 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ButtonSpec | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="buttonspec.html">ButtonSpec</a>
</li>
</ul>
<h1><!-- Interface -->ButtonSpec</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ButtonSpec</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="buttonspec.html#id" class="tsd-kind-icon">id</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="buttonspec.html#title" class="tsd-kind-icon">title</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="buttonspec.html#onclick" class="tsd-kind-icon">on<wbr>Click</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="id" class="tsd-anchor"></a>
<h3>id</h3>
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <a href="../globals.html#buttonid" class="tsd-signature-type">ButtonId</a></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="title" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> title</h3>
<div class="tsd-signature tsd-kind-icon">title<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onclick" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> on<wbr>Click</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Click<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="buttonspec.html" class="tsd-kind-icon">ButtonSpec</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="buttonspec.html#id" class="tsd-kind-icon">id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="buttonspec.html#title" class="tsd-kind-icon">title</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="buttonspec.html#onclick" class="tsd-kind-icon">on<wbr>Click</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,161 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ChangeEvent | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="changeevent.html">ChangeEvent</a>
</li>
</ul>
<h1><!-- Interface -->ChangeEvent</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ChangeEvent</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="changeevent.html#keys" class="tsd-kind-icon">keys</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="keys" class="tsd-anchor"></a>
<h3>keys</h3>
<div class="tsd-signature tsd-kind-icon">keys<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Setting keys that have been changed</p>
</div>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="changeevent.html" class="tsd-kind-icon">ChangeEvent</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="changeevent.html#keys" class="tsd-kind-icon">keys</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,296 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Command | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="command.html">Command</a>
</li>
</ul>
<h1><!-- Interface -->Command</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Command</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="command.html#enabledcondition" class="tsd-kind-icon">enabled<wbr>Condition</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="command.html#iconname" class="tsd-kind-icon">icon<wbr>Name</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="command.html#label" class="tsd-kind-icon">label</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="command.html#name" class="tsd-kind-icon">name</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="command.html#execute" class="tsd-kind-icon">execute</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="enabledcondition" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> enabled<wbr>Condition</h3>
<div class="tsd-signature tsd-kind-icon">enabled<wbr>Condition<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Defines whether the command should be enabled or disabled, which in turns
affects the enabled state of any associated button or menu item.</p>
</div>
<p>The condition should be expressed as a &quot;when-clause&quot; (as in Visual Studio
Code). It&#39;s a simple boolean expression that evaluates to <code>true</code> or
<code>false</code>. It supports the following operators:</p>
<table>
<thead>
<tr>
<th>Operator</th>
<th>Symbol</th>
<th>Example</th>
</tr>
</thead>
<tbody><tr>
<td>Equality</td>
<td>==</td>
<td>&quot;editorType == markdown&quot;</td>
</tr>
<tr>
<td>Inequality</td>
<td>!=</td>
<td>&quot;currentScreen != config&quot;</td>
</tr>
<tr>
<td>Or</td>
<td>||</td>
<td>&quot;noteIsTodo || noteTodoCompleted&quot;</td>
</tr>
<tr>
<td>And</td>
<td>&amp;&amp;</td>
<td>&quot;oneNoteSelected &amp;&amp; !inConflictFolder&quot;</td>
</tr>
</tbody></table>
<p>Joplin, unlike VSCode, also supports parenthesis, which allows creating
more complex expressions such as <code>cond1 || (cond2 &amp;&amp; cond3)</code>. Only one
level of parenthesis is possible (nested ones aren&#39;t supported).</p>
<p>Currently the supported context variables aren&#39;t documented, but you can
find the list below:</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/packages/lib/services/commands/stateToWhenClauseContext.ts">Global When Clauses</a></li>
<li><a href="https://github.com/laurent22/joplin/blob/dev/packages/app-desktop/services/commands/stateToWhenClauseContext.ts">Desktop app When Clauses</a></li>
</ul>
<p>Note: Commands are enabled by default unless you use this property.</p>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="iconname" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> icon<wbr>Name</h3>
<div class="tsd-signature tsd-kind-icon">icon<wbr>Name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Icon to be used on toolbar buttons for example</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="label" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> label</h3>
<div class="tsd-signature tsd-kind-icon">label<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Label to be displayed on menu items or keyboard shortcut editor for example.
If it is missing, it&#39;s assumed it&#39;s a private command, to be called programmatically only.
In that case the command will not appear in the shortcut editor or command panel, and logically
should not be used as a menu item.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="name" class="tsd-anchor"></a>
<h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Name of command - must be globally unique</p>
</div>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="execute" class="tsd-anchor"></a>
<h3>execute</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">execute<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span>args<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Code to be ran when the command is executed. It may return a result.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5><span class="tsd-flag ts-flagRest">Rest</span> <span class="tsd-signature-symbol">...</span>args: <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="command.html" class="tsd-kind-icon">Command</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="command.html#enabledcondition" class="tsd-kind-icon">enabled<wbr>Condition</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="command.html#iconname" class="tsd-kind-icon">icon<wbr>Name</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="command.html#label" class="tsd-kind-icon">label</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="command.html#name" class="tsd-kind-icon">name</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="command.html#execute" class="tsd-kind-icon">execute</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,200 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ContentScriptContext | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="contentscriptcontext.html">ContentScriptContext</a>
</li>
</ul>
<h1><!-- Interface -->ContentScriptContext</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>When a content script is initialised, it receives a <code>context</code> object.</p>
</div>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ContentScriptContext</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="contentscriptcontext.html#contentscriptid" class="tsd-kind-icon">content<wbr>Script<wbr>Id</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="contentscriptcontext.html#pluginid" class="tsd-kind-icon">plugin<wbr>Id</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="contentscriptcontext.html#postmessage" class="tsd-kind-icon">post<wbr>Message</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="contentscriptid" class="tsd-anchor"></a>
<h3>content<wbr>Script<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">content<wbr>Script<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The content script ID, which may be necessary to post messages</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="pluginid" class="tsd-anchor"></a>
<h3>plugin<wbr>Id</h3>
<div class="tsd-signature tsd-kind-icon">plugin<wbr>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The plugin ID that registered this content script</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="postmessage" class="tsd-anchor"></a>
<h3>post<wbr>Message</h3>
<div class="tsd-signature tsd-kind-icon">post<wbr>Message<span class="tsd-signature-symbol">:</span> <a href="../globals.html#postmessagehandler" class="tsd-signature-type">PostMessageHandler</a></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Can be used by CodeMirror content scripts to post a message to the plugin</p>
</div>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="contentscriptcontext.html" class="tsd-kind-icon">ContentScriptContext</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="contentscriptcontext.html#contentscriptid" class="tsd-kind-icon">content<wbr>Script<wbr>Id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="contentscriptcontext.html#pluginid" class="tsd-kind-icon">plugin<wbr>Id</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="contentscriptcontext.html#postmessage" class="tsd-kind-icon">post<wbr>Message</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,156 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>CreateMenuItemOptions | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="createmenuitemoptions.html">CreateMenuItemOptions</a>
</li>
</ul>
<h1><!-- Interface -->CreateMenuItemOptions</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">CreateMenuItemOptions</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="createmenuitemoptions.html#accelerator" class="tsd-kind-icon">accelerator</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="accelerator" class="tsd-anchor"></a>
<h3>accelerator</h3>
<div class="tsd-signature tsd-kind-icon">accelerator<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="createmenuitemoptions.html" class="tsd-kind-icon">CreateMenuItemOptions</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="createmenuitemoptions.html#accelerator" class="tsd-kind-icon">accelerator</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,167 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>DialogResult | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="dialogresult.html">DialogResult</a>
</li>
</ul>
<h1><!-- Interface -->DialogResult</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">DialogResult</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="dialogresult.html#formdata" class="tsd-kind-icon">form<wbr>Data</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="dialogresult.html#id" class="tsd-kind-icon">id</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="formdata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> form<wbr>Data</h3>
<div class="tsd-signature tsd-kind-icon">form<wbr>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="id" class="tsd-anchor"></a>
<h3>id</h3>
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <a href="../globals.html#buttonid" class="tsd-signature-type">ButtonId</a></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="dialogresult.html" class="tsd-kind-icon">DialogResult</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="dialogresult.html#formdata" class="tsd-kind-icon">form<wbr>Data</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="dialogresult.html#id" class="tsd-kind-icon">id</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,128 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Disposable | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="disposable.html">Disposable</a>
</li>
</ul>
<h1><!-- Interface -->Disposable</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Disposable</span>
</li>
</ul>
</section>
-->
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="disposable.html" class="tsd-kind-icon">Disposable</a>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,167 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>EditorCommand | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="editorcommand.html">EditorCommand</a>
</li>
</ul>
<h1><!-- Interface -->EditorCommand</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">EditorCommand</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="editorcommand.html#name" class="tsd-kind-icon">name</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="editorcommand.html#value" class="tsd-kind-icon">value</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="name" class="tsd-anchor"></a>
<h3>name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="value" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> value</h3>
<div class="tsd-signature tsd-kind-icon">value<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="editorcommand.html" class="tsd-kind-icon">EditorCommand</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="editorcommand.html#name" class="tsd-kind-icon">name</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="editorcommand.html#value" class="tsd-kind-icon">value</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,183 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ExportContext | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="exportcontext.html">ExportContext</a>
</li>
</ul>
<h1><!-- Interface -->ExportContext</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ExportContext</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportcontext.html#destpath" class="tsd-kind-icon">dest<wbr>Path</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportcontext.html#options" class="tsd-kind-icon">options</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportcontext.html#userdata" class="tsd-kind-icon">user<wbr>Data</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="destpath" class="tsd-anchor"></a>
<h3>dest<wbr>Path</h3>
<div class="tsd-signature tsd-kind-icon">dest<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="options" class="tsd-anchor"></a>
<h3>options</h3>
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <a href="exportoptions.html" class="tsd-signature-type">ExportOptions</a></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="userdata" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> user<wbr>Data</h3>
<div class="tsd-signature tsd-kind-icon">user<wbr>Data<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>You can attach your own custom data using this propery - it will then be passed to each event handler, allowing you to keep state from one event to the next.</p>
</div>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="exportcontext.html" class="tsd-kind-icon">ExportContext</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportcontext.html#destpath" class="tsd-kind-icon">dest<wbr>Path</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportcontext.html#options" class="tsd-kind-icon">options</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportcontext.html#userdata" class="tsd-kind-icon">user<wbr>Data</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,388 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ExportModule | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="exportmodule.html">ExportModule</a>
</li>
</ul>
<h1><!-- Interface -->ExportModule</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Used to implement a module to export data from Joplin. <a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/json_export">View the demo plugin</a> for an example.</p>
</div>
<p>In general, all the event handlers you&#39;ll need to implement take a <code>context</code> object as a first argument. This object will contain the export or import path as well as various optional properties, such as which notes or notebooks need to be exported.</p>
<p>To get a better sense of what it will contain it can be useful to print it using <code>console.info(context)</code>.</p>
</div>
</section>
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ExportModule</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportmodule.html#description" class="tsd-kind-icon">description</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportmodule.html#fileextensions" class="tsd-kind-icon">file<wbr>Extensions</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportmodule.html#format" class="tsd-kind-icon">format</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportmodule.html#isnotearchive" class="tsd-kind-icon">is<wbr>Note<wbr>Archive</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportmodule.html#target" class="tsd-kind-icon">target</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="exportmodule.html#onclose" class="tsd-kind-icon">on<wbr>Close</a></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="exportmodule.html#oninit" class="tsd-kind-icon">on<wbr>Init</a></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="exportmodule.html#onprocessitem" class="tsd-kind-icon">on<wbr>Process<wbr>Item</a></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="exportmodule.html#onprocessresource" class="tsd-kind-icon">on<wbr>Process<wbr>Resource</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="description" class="tsd-anchor"></a>
<h3>description</h3>
<div class="tsd-signature tsd-kind-icon">description<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The description that will appear in the UI, for example in the menu item.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="fileextensions" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> file<wbr>Extensions</h3>
<div class="tsd-signature tsd-kind-icon">file<wbr>Extensions<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The extensions of the files exported by your module. For example, it is <code>[&quot;htm&quot;, &quot;html&quot;]</code> for the HTML module, and just <code>[&quot;jex&quot;]</code> for the JEX module.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="format" class="tsd-anchor"></a>
<h3>format</h3>
<div class="tsd-signature tsd-kind-icon">format<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The format to be exported, eg &quot;enex&quot;, &quot;jex&quot;, &quot;json&quot;, etc.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="isnotearchive" class="tsd-anchor"></a>
<h3>is<wbr>Note<wbr>Archive</h3>
<div class="tsd-signature tsd-kind-icon">is<wbr>Note<wbr>Archive<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Only applies to single file exporters or importers
It tells whether the format can package multiple notes into one file.
For example JEX or ENEX can, but HTML cannot.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="target" class="tsd-anchor"></a>
<h3>target</h3>
<div class="tsd-signature tsd-kind-icon">target<span class="tsd-signature-symbol">:</span> <a href="../enums/filesystemitem.html" class="tsd-signature-type">FileSystemItem</a></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Whether the module will export a single file or multiple files in a directory. It affects the open dialog that will be presented to the user when using your exporter.</p>
</div>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onclose" class="tsd-anchor"></a>
<h3>on<wbr>Close</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Close<span class="tsd-signature-symbol">(</span>context<span class="tsd-signature-symbol">: </span><a href="exportcontext.html" class="tsd-signature-type">ExportContext</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the export process is done.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>context: <a href="exportcontext.html" class="tsd-signature-type">ExportContext</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="oninit" class="tsd-anchor"></a>
<h3>on<wbr>Init</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Init<span class="tsd-signature-symbol">(</span>context<span class="tsd-signature-symbol">: </span><a href="exportcontext.html" class="tsd-signature-type">ExportContext</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the export process starts.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>context: <a href="exportcontext.html" class="tsd-signature-type">ExportContext</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onprocessitem" class="tsd-anchor"></a>
<h3>on<wbr>Process<wbr>Item</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Process<wbr>Item<span class="tsd-signature-symbol">(</span>context<span class="tsd-signature-symbol">: </span><a href="exportcontext.html" class="tsd-signature-type">ExportContext</a>, itemType<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, item<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when an item needs to be processed. An &quot;item&quot; can be any Joplin object, such as a note, a folder, a notebook, etc.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>context: <a href="exportcontext.html" class="tsd-signature-type">ExportContext</a></h5>
</li>
<li>
<h5>itemType: <span class="tsd-signature-type">number</span></h5>
</li>
<li>
<h5>item: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onprocessresource" class="tsd-anchor"></a>
<h3>on<wbr>Process<wbr>Resource</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Process<wbr>Resource<span class="tsd-signature-symbol">(</span>context<span class="tsd-signature-symbol">: </span><a href="exportcontext.html" class="tsd-signature-type">ExportContext</a>, resource<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span>, filePath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when a resource file needs to be exported.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>context: <a href="exportcontext.html" class="tsd-signature-type">ExportContext</a></h5>
</li>
<li>
<h5>resource: <span class="tsd-signature-type">any</span></h5>
</li>
<li>
<h5>filePath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="exportmodule.html" class="tsd-kind-icon">ExportModule</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportmodule.html#description" class="tsd-kind-icon">description</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportmodule.html#fileextensions" class="tsd-kind-icon">file<wbr>Extensions</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportmodule.html#format" class="tsd-kind-icon">format</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportmodule.html#isnotearchive" class="tsd-kind-icon">is<wbr>Note<wbr>Archive</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportmodule.html#target" class="tsd-kind-icon">target</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="exportmodule.html#onclose" class="tsd-kind-icon">on<wbr>Close</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="exportmodule.html#oninit" class="tsd-kind-icon">on<wbr>Init</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="exportmodule.html#onprocessitem" class="tsd-kind-icon">on<wbr>Process<wbr>Item</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="exportmodule.html#onprocessresource" class="tsd-kind-icon">on<wbr>Process<wbr>Resource</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,200 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ExportOptions | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="exportoptions.html">ExportOptions</a>
</li>
</ul>
<h1><!-- Interface -->ExportOptions</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ExportOptions</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportoptions.html#format" class="tsd-kind-icon">format</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportoptions.html#path" class="tsd-kind-icon">path</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportoptions.html#sourcefolderids" class="tsd-kind-icon">source<wbr>Folder<wbr>Ids</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportoptions.html#sourcenoteids" class="tsd-kind-icon">source<wbr>Note<wbr>Ids</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="exportoptions.html#target" class="tsd-kind-icon">target</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="format" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> format</h3>
<div class="tsd-signature tsd-kind-icon">format<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="path" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> path</h3>
<div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="sourcefolderids" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> source<wbr>Folder<wbr>Ids</h3>
<div class="tsd-signature tsd-kind-icon">source<wbr>Folder<wbr>Ids<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="sourcenoteids" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> source<wbr>Note<wbr>Ids</h3>
<div class="tsd-signature tsd-kind-icon">source<wbr>Note<wbr>Ids<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="target" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> target</h3>
<div class="tsd-signature tsd-kind-icon">target<span class="tsd-signature-symbol">:</span> <a href="../enums/filesystemitem.html" class="tsd-signature-type">FileSystemItem</a></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="exportoptions.html" class="tsd-kind-icon">ExportOptions</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportoptions.html#format" class="tsd-kind-icon">format</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportoptions.html#path" class="tsd-kind-icon">path</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportoptions.html#sourcefolderids" class="tsd-kind-icon">source<wbr>Folder<wbr>Ids</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportoptions.html#sourcenoteids" class="tsd-kind-icon">source<wbr>Note<wbr>Ids</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="exportoptions.html#target" class="tsd-kind-icon">target</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,176 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Implementation | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="implementation.html">Implementation</a>
</li>
</ul>
<h1><!-- Interface -->Implementation</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Implementation</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="implementation.html#injectcustomstyles" class="tsd-kind-icon">inject<wbr>Custom<wbr>Styles</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="injectcustomstyles" class="tsd-anchor"></a>
<h3>inject<wbr>Custom<wbr>Styles</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">inject<wbr>Custom<wbr>Styles<span class="tsd-signature-symbol">(</span>elementId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, cssFilePath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>elementId: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5>cssFilePath: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="implementation.html" class="tsd-kind-icon">Implementation</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="implementation.html#injectcustomstyles" class="tsd-kind-icon">inject<wbr>Custom<wbr>Styles</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,178 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ImportContext | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="importcontext.html">ImportContext</a>
</li>
</ul>
<h1><!-- Interface -->ImportContext</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ImportContext</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importcontext.html#options" class="tsd-kind-icon">options</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importcontext.html#sourcepath" class="tsd-kind-icon">source<wbr>Path</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importcontext.html#warnings" class="tsd-kind-icon">warnings</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="options" class="tsd-anchor"></a>
<h3>options</h3>
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="sourcepath" class="tsd-anchor"></a>
<h3>source<wbr>Path</h3>
<div class="tsd-signature tsd-kind-icon">source<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="warnings" class="tsd-anchor"></a>
<h3>warnings</h3>
<div class="tsd-signature tsd-kind-icon">warnings<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="importcontext.html" class="tsd-kind-icon">ImportContext</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importcontext.html#options" class="tsd-kind-icon">options</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importcontext.html#sourcepath" class="tsd-kind-icon">source<wbr>Path</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importcontext.html#warnings" class="tsd-kind-icon">warnings</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,284 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ImportModule | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="importmodule.html">ImportModule</a>
</li>
</ul>
<h1><!-- Interface -->ImportModule</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ImportModule</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#description" class="tsd-kind-icon">description</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#fileextensions" class="tsd-kind-icon">file<wbr>Extensions</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#format" class="tsd-kind-icon">format</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#isnotearchive" class="tsd-kind-icon">is<wbr>Note<wbr>Archive</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#outputformat" class="tsd-kind-icon">output<wbr>Format</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="importmodule.html#sources" class="tsd-kind-icon">sources</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="importmodule.html#onexec" class="tsd-kind-icon">on<wbr>Exec</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="description" class="tsd-anchor"></a>
<h3>description</h3>
<div class="tsd-signature tsd-kind-icon">description<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The description that will appear in the UI, for example in the menu item.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="fileextensions" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> file<wbr>Extensions</h3>
<div class="tsd-signature tsd-kind-icon">file<wbr>Extensions<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Tells the file extensions of the exported files.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="format" class="tsd-anchor"></a>
<h3>format</h3>
<div class="tsd-signature tsd-kind-icon">format<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The format to be exported, eg &quot;enex&quot;, &quot;jex&quot;, &quot;json&quot;, etc.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="isnotearchive" class="tsd-anchor"></a>
<h3>is<wbr>Note<wbr>Archive</h3>
<div class="tsd-signature tsd-kind-icon">is<wbr>Note<wbr>Archive<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Only applies to single file exporters or importers
It tells whether the format can package multiple notes into one file.
For example JEX or ENEX can, but HTML cannot.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="outputformat" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> output<wbr>Format</h3>
<div class="tsd-signature tsd-kind-icon">output<wbr>Format<span class="tsd-signature-symbol">:</span> <a href="../enums/importmoduleoutputformat.html" class="tsd-signature-type">ImportModuleOutputFormat</a></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Tells the type of notes that will be generated, either HTML or Markdown (default).</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="sources" class="tsd-anchor"></a>
<h3>sources</h3>
<div class="tsd-signature tsd-kind-icon">sources<span class="tsd-signature-symbol">:</span> <a href="../enums/filesystemitem.html" class="tsd-signature-type">FileSystemItem</a><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>The type of sources that are supported by the module. Tells whether the module can import files or directories or both.</p>
</div>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onexec" class="tsd-anchor"></a>
<h3>on<wbr>Exec</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Exec<span class="tsd-signature-symbol">(</span>context<span class="tsd-signature-symbol">: </span><a href="importcontext.html" class="tsd-signature-type">ImportContext</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Called when the import process starts. There is only one event handler within which you should import the complete data.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>context: <a href="importcontext.html" class="tsd-signature-type">ImportContext</a></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="importmodule.html" class="tsd-kind-icon">ImportModule</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#description" class="tsd-kind-icon">description</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#fileextensions" class="tsd-kind-icon">file<wbr>Extensions</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#format" class="tsd-kind-icon">format</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#isnotearchive" class="tsd-kind-icon">is<wbr>Note<wbr>Archive</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#outputformat" class="tsd-kind-icon">output<wbr>Format</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="importmodule.html#sources" class="tsd-kind-icon">sources</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="importmodule.html#onexec" class="tsd-kind-icon">on<wbr>Exec</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,167 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>ItemChangeEvent | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="itemchangeevent.html">ItemChangeEvent</a>
</li>
</ul>
<h1><!-- Interface -->ItemChangeEvent</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">ItemChangeEvent</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="itemchangeevent.html#event" class="tsd-kind-icon">event</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="itemchangeevent.html#id" class="tsd-kind-icon">id</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="event" class="tsd-anchor"></a>
<h3>event</h3>
<div class="tsd-signature tsd-kind-icon">event<span class="tsd-signature-symbol">:</span> <a href="../enums/itemchangeeventtype.html" class="tsd-signature-type">ItemChangeEventType</a></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="id" class="tsd-anchor"></a>
<h3>id</h3>
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="itemchangeevent.html" class="tsd-kind-icon">ItemChangeEvent</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="itemchangeevent.html#event" class="tsd-kind-icon">event</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="itemchangeevent.html#id" class="tsd-kind-icon">id</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,210 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MenuItem | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="menuitem.html">MenuItem</a>
</li>
</ul>
<h1><!-- Interface -->MenuItem</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">MenuItem</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="menuitem.html#accelerator" class="tsd-kind-icon">accelerator</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="menuitem.html#commandname" class="tsd-kind-icon">command<wbr>Name</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="menuitem.html#label" class="tsd-kind-icon">label</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="menuitem.html#submenu" class="tsd-kind-icon">submenu</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="accelerator" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> accelerator</h3>
<div class="tsd-signature tsd-kind-icon">accelerator<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Accelerator associated with the menu item</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="commandname" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> command<wbr>Name</h3>
<div class="tsd-signature tsd-kind-icon">command<wbr>Name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Command that should be associated with the menu item. All menu item should
have a command associated with them unless they are a sub-menu.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="label" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> label</h3>
<div class="tsd-signature tsd-kind-icon">label<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Menu item label. If not specified, the command label will be used instead.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="submenu" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> submenu</h3>
<div class="tsd-signature tsd-kind-icon">submenu<span class="tsd-signature-symbol">:</span> <a href="menuitem.html" class="tsd-signature-type">MenuItem</a><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Menu items that should appear below this menu item. Allows creating a menu tree.</p>
</div>
</div>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="menuitem.html" class="tsd-kind-icon">MenuItem</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="menuitem.html#accelerator" class="tsd-kind-icon">accelerator</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="menuitem.html#commandname" class="tsd-kind-icon">command<wbr>Name</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="menuitem.html#label" class="tsd-kind-icon">label</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="menuitem.html#submenu" class="tsd-kind-icon">submenu</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,173 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Script | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="script.html">Script</a>
</li>
</ul>
<h1><!-- Interface -->Script</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">Script</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-interface"><a href="script.html#onstart" class="tsd-kind-icon">on<wbr>Start</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-interface">
<a name="onstart" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> on<wbr>Start</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-interface">
<li class="tsd-signature tsd-kind-icon">on<wbr>Start<span class="tsd-signature-symbol">(</span>event<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>event: <span class="tsd-signature-type">any</span></h5>
</li>
</ul>
<!-- JOPLINCHANGE
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
-->
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="script.html" class="tsd-kind-icon">Script</a>
<ul>
<li class=" tsd-kind-method tsd-parent-kind-interface">
<a href="script.html#onstart" class="tsd-kind-icon">on<wbr>Start</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,364 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SettingItem | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="settingitem.html">SettingItem</a>
</li>
</ul>
<h1><!-- Interface -->SettingItem</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">SettingItem</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#advanced" class="tsd-kind-icon">advanced</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#apptypes" class="tsd-kind-icon">app<wbr>Types</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#description" class="tsd-kind-icon">description</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#isenum" class="tsd-kind-icon">is<wbr>Enum</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#label" class="tsd-kind-icon">label</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#maximum" class="tsd-kind-icon">maximum</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#minimum" class="tsd-kind-icon">minimum</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#options" class="tsd-kind-icon">options</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#public" class="tsd-kind-icon">public</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#section" class="tsd-kind-icon">section</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#secure" class="tsd-kind-icon">secure</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#step" class="tsd-kind-icon">step</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#storage" class="tsd-kind-icon">storage</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#type" class="tsd-kind-icon">type</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingitem.html#value" class="tsd-kind-icon">value</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="advanced" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> advanced</h3>
<div class="tsd-signature tsd-kind-icon">advanced<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>An advanced setting will be moved under the &quot;Advanced&quot; button in the
config screen.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="apptypes" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> app<wbr>Types</h3>
<div class="tsd-signature tsd-kind-icon">app<wbr>Types<span class="tsd-signature-symbol">:</span> <a href="../enums/apptype.html" class="tsd-signature-type">AppType</a><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Reserved property. Not used at the moment.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="description" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> description</h3>
<div class="tsd-signature tsd-kind-icon">description<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="isenum" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> is<wbr>Enum</h3>
<div class="tsd-signature tsd-kind-icon">is<wbr>Enum<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>To create a setting with multiple options, set this property to <code>true</code>.
That setting will render as a dropdown list in the configuration screen.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="label" class="tsd-anchor"></a>
<h3>label</h3>
<div class="tsd-signature tsd-kind-icon">label<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="maximum" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> maximum</h3>
<div class="tsd-signature tsd-kind-icon">maximum<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="minimum" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> minimum</h3>
<div class="tsd-signature tsd-kind-icon">minimum<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Set the min, max and step values if you want to restrict an int setting
to a particular range.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="options" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> options</h3>
<div class="tsd-signature tsd-kind-icon">options<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>This property is required when <code>isEnum</code> is <code>true</code>. In which case, it
should contain a map of value =&gt; label.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="public" class="tsd-anchor"></a>
<h3>public</h3>
<div class="tsd-signature tsd-kind-icon">public<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>A public setting will appear in the Configuration screen and will be
modifiable by the user. A private setting however will not appear there,
and can only be changed programmatically. You may use this to store some
values that you do not want to directly expose.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="section" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> section</h3>
<div class="tsd-signature tsd-kind-icon">section<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>You would usually set this to a section you would have created
specifically for the plugin.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="secure" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> secure</h3>
<div class="tsd-signature tsd-kind-icon">secure<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Set this to <code>true</code> to store secure data, such as passwords. Any such
setting will be stored in the system keychain if one is available.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="step" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> step</h3>
<div class="tsd-signature tsd-kind-icon">step<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="storage" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> storage</h3>
<div class="tsd-signature tsd-kind-icon">storage<span class="tsd-signature-symbol">:</span> <a href="../enums/settingstorage.html" class="tsd-signature-type">SettingStorage</a></div>
<aside class="tsd-sources">
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Either store the setting in the database or in settings.json. Defaults to database.</p>
</div>
</div>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="type" class="tsd-anchor"></a>
<h3>type</h3>
<div class="tsd-signature tsd-kind-icon">type<span class="tsd-signature-symbol">:</span> <a href="../enums/settingitemtype.html" class="tsd-signature-type">SettingItemType</a></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="value" class="tsd-anchor"></a>
<h3>value</h3>
<div class="tsd-signature tsd-kind-icon">value<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="settingitem.html" class="tsd-kind-icon">SettingItem</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#advanced" class="tsd-kind-icon">advanced</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#apptypes" class="tsd-kind-icon">app<wbr>Types</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#description" class="tsd-kind-icon">description</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#isenum" class="tsd-kind-icon">is<wbr>Enum</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#label" class="tsd-kind-icon">label</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#maximum" class="tsd-kind-icon">maximum</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#minimum" class="tsd-kind-icon">minimum</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#options" class="tsd-kind-icon">options</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#public" class="tsd-kind-icon">public</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#section" class="tsd-kind-icon">section</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#secure" class="tsd-kind-icon">secure</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#step" class="tsd-kind-icon">step</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#storage" class="tsd-kind-icon">storage</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#type" class="tsd-kind-icon">type</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingitem.html#value" class="tsd-kind-icon">value</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,189 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SettingSection | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="settingsection.html">SettingSection</a>
</li>
</ul>
<h1><!-- Interface -->SettingSection</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">SettingSection</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingsection.html#description" class="tsd-kind-icon">description</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingsection.html#iconname" class="tsd-kind-icon">icon<wbr>Name</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingsection.html#label" class="tsd-kind-icon">label</a></li>
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="settingsection.html#name" class="tsd-kind-icon">name</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="description" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> description</h3>
<div class="tsd-signature tsd-kind-icon">description<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="iconname" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> icon<wbr>Name</h3>
<div class="tsd-signature tsd-kind-icon">icon<wbr>Name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="label" class="tsd-anchor"></a>
<h3>label</h3>
<div class="tsd-signature tsd-kind-icon">label<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="name" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagOptional">Optional</span> name</h3>
<div class="tsd-signature tsd-kind-icon">name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="settingsection.html" class="tsd-kind-icon">SettingSection</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingsection.html#description" class="tsd-kind-icon">description</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingsection.html#iconname" class="tsd-kind-icon">icon<wbr>Name</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingsection.html#label" class="tsd-kind-icon">label</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="settingsection.html#name" class="tsd-kind-icon">name</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,156 +0,0 @@
<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>SyncStartEvent | Joplin Plugin API Documentation</title>
<meta name="description" content="Documentation for Joplin Plugin API Documentation">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../classes/joplin.html" class="title">Joplin Plugin API Documentation</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<!--
<li>
<a href="../globals.html">Globals</a>
</li>
-->
<li>
<a href="syncstartevent.html">SyncStartEvent</a>
</li>
</ul>
<h1><!-- Interface -->SyncStartEvent</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<!--
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<span class="target">SyncStartEvent</span>
</li>
</ul>
</section>
-->
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="syncstartevent.html#witherrors" class="tsd-kind-icon">with<wbr>Errors</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
<a name="witherrors" class="tsd-anchor"></a>
<h3>with<wbr>Errors</h3>
<div class="tsd-signature tsd-kind-icon">with<wbr>Errors<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
<aside class="tsd-sources">
</aside>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<!--
<nav class="tsd-navigation primary">
<ul>
<li class="globals ">
<a href="../globals.html"><em>Globals</em></a>
</li>
</ul>
</nav>
-->
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-interface">
<a href="syncstartevent.html" class="tsd-kind-icon">SyncStartEvent</a>
<ul>
<li class=" tsd-kind-property tsd-parent-kind-interface">
<a href="syncstartevent.html#witherrors" class="tsd-kind-icon">with<wbr>Errors</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
</ul>
</nav>
</div>
</div>
</div>
<!-- JOPLINCHANGE
<footer class="with-border-bottom">
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li>
<li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
</div>
</div>
</footer>
<div class="container tsd-generator">
<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
</div>
-->
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>

View File

@@ -1,359 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/references/plugin_loading_rules.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loading_rules.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Plugin Loading Rules | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-plugin_loading_rules">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Plugin Loading Rules<a name="plugin-loading-rules" href="#plugin-loading-rules" class="heading-anchor">🔗</a></h1>
<p>When loading plugins from the profile <code>plugins</code> directory, Joplin will look at the following locations:</p>
<ul>
<li><code>plugins/PLUGIN_ID.js</code></li>
<li><code>plugins/PLUGIN_ID/index.js</code></li>
<li><code>plugins/PLUGIN_ID/dist/index.js</code></li>
<li>Any directory or file that starts with &quot;_&quot; will be excluded. This can be used to disable a plugin without having to delete it from the directory.</li>
</ul>
<p><code>PLUGIN_ID</code> can be any string but it must be unique.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loading_rules.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,429 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/references/plugin_manifest.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manifest.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Plugin Manifest | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-plugin_manifest">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Plugin Manifest<a name="plugin-manifest" href="#plugin-manifest" class="heading-anchor">🔗</a></h1>
<p>The manifest file is a JSON file that describes various properties of the plugin. If you use the Yeoman generator, it should be automatically generated based on the answers you've provided. The supported properties are:</p>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required?</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>manifest_version</code></td>
<td>number</td>
<td><strong>Yes</strong></td>
<td>For now should always be &quot;1&quot;.</td>
</tr>
<tr>
<td><code>name</code></td>
<td>string</td>
<td><strong>Yes</strong></td>
<td>Name of the plugin. Should be a user-friendly string, as it will be displayed in the UI.</td>
</tr>
<tr>
<td><code>version</code></td>
<td>string</td>
<td><strong>Yes</strong></td>
<td>Version number such as &quot;1.0.0&quot;.</td>
</tr>
<tr>
<td><code>app_min_version</code></td>
<td>string</td>
<td><strong>Yes</strong></td>
<td>Minimum version of Joplin that the plugin is compatible with. In general it should be whatever version you are using to develop the plugin.</td>
</tr>
<tr>
<td><code>description</code></td>
<td>string</td>
<td>No</td>
<td>Detailed description of the plugin.</td>
</tr>
<tr>
<td><code>author</code></td>
<td>string</td>
<td>No</td>
<td>Plugin author name.</td>
</tr>
<tr>
<td><code>keywords</code></td>
<td>string[]</td>
<td>No</td>
<td>Keywords associated with the plugins. They are used in search in particular.</td>
</tr>
<tr>
<td><code>homepage_url</code></td>
<td>string</td>
<td>No</td>
<td>Homepage URL of the plugin. It can also be, for example, a link to a GitHub repository.</td>
</tr>
<tr>
<td><code>repository_url</code></td>
<td>string</td>
<td>No</td>
<td>Repository URL where the plugin source code is hosted.</td>
</tr>
</tbody>
</table>
<h2>Manifest example<a name="manifest-example" href="#manifest-example" class="heading-anchor">🔗</a></h2>
<pre><code class="language-json">{
&quot;manifest_version&quot;: 1,
&quot;name&quot;: &quot;Joplin Simple Plugin&quot;,
&quot;description&quot;: &quot;To test loading and running a plugin&quot;,
&quot;version&quot;: &quot;1.0.0&quot;,
&quot;author&quot;: &quot;John Smith&quot;,
&quot;app_min_version&quot;: &quot;1.4&quot;,
&quot;homepage_url&quot;: &quot;https://joplinapp.org&quot;
}
</code></pre>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manifest.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,389 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/references/plugin_theming.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_theming.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Plugin theming | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-plugin_theming">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Plugin theming<a name="plugin-theming" href="#plugin-theming" class="heading-anchor">🔗</a></h1>
<h2>CSS<a name="css" href="#css" class="heading-anchor">🔗</a></h2>
<p>Plugins add custom content to the UI using<br>
<a href="https://joplinapp.org/api/references/plugin_api/classes/joplinviewspanels.html">webview panels</a>.<br>
The HTML content of a a panel is styled with CSS.</p>
<p>To keep the look and feel of a plugin consistent with the rest of the Joplin UI,<br>
you are automatically provided with variables derived from the current theme.</p>
<p>Variables follow the naming convention <code>--joplin-{property}</code> and are used<br>
in your plugin's stylesheet as shown here.</p>
<pre><code class="language-css">/* webview.css */
.container {
color: var(--joplin-color);
font-family: var(--joplin-font-family);
}
</code></pre>
<h2>Icons<a name="icons" href="#icons" class="heading-anchor">🔗</a></h2>
<p>In addition to variables, you have access to a set of standard font assets that ship with Joplin.<br>
These include:</p>
<ul>
<li><a href="https://fonts.google.com/specimen/Roboto?preview.text_type=custom">Roboto</a> - (the standard UI font, <code>font-family</code> referenced above)</li>
<li><a href="https://fontawesome.com/icons?d=gallery&amp;p=2&amp;m=free">Font Awesome</a> - icon library</li>
<li><a href="https://icomoon.io/#preview-free">icoMoon</a> - icon library (subset, see <a href="https://github.com/laurent22/joplin/blob/dev/packages/app-desktop/style/icons/style.css">style.css</a>)</li>
</ul>
<p>To display an icon, use CSS and HTML like the following.</p>
<pre><code class="language-css">/* style icons to match the theme */
.toolbarIcon {
font-size: var(--joplin-toolbar-icon-size);
}
.primary {
color: var(--joplin-color);
}
.secondary {
color: var(--joplin-color-2);
}
</code></pre>
<pre><code class="language-html">&lt;i class=&quot;toolbarIcon primary fas fa-music&quot;&gt;&lt;/i&gt; Font Awesome music icon
&lt;br /&gt;
&lt;i class=&quot;toolbarIcon secondary icon-notebooks&quot;&gt;&lt;/i&gt; icoMoon notebook icon
</code></pre>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_theming.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,623 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/api/tutorials/toc_plugin.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/api/tutorials/toc_plugin.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Creating a table of content plugin | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-toc_plugin">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Creating a table of content plugin<a name="creating-a-table-of-content-plugin" href="#creating-a-table-of-content-plugin" class="heading-anchor">🔗</a></h1>
<p>This tutorial will guide you through the steps to create a table of content plugin for Joplin. It will display a view next to the current note that will contain links to the sections of a note. It will be possible to click on one of the header to jump to the relevant section.</p>
<p>Through this tutorial you will learn about several aspect of the Joplin API, including:</p>
<ul>
<li>The plugin API</li>
<li>How to create a webview</li>
<li>How to listen to changes in the user interface</li>
</ul>
<h2>Setting up your environment<a name="setting-up-your-environment" href="#setting-up-your-environment" class="heading-anchor">🔗</a></h2>
<p>Before getting any further, make sure your environment is setup correctly as described in the <a href="/api/get_started/plugins/">Get Started guide</a>.</p>
<h2>Registering the plugin<a name="registering-the-plugin" href="#registering-the-plugin" class="heading-anchor">🔗</a></h2>
<p>All plugins must <a href="https://joplinapp.org/api/references/plugin_api/classes/joplinplugins.html">register themselves</a> and declare what events they can handle. To do so, open <code>src/index.ts</code> and register the plugin as below. We'll also need to run some initialisation code when the plugin starts, so add the <code>onStart()</code> event handler too:</p>
<pre><code class="language-typescript">// Import the Joplin API
import joplin from 'api';
// Register the plugin
joplin.plugins.register({
// Run initialisation code in the onStart event handler
// Note that due to the plugin multi-process architecture, you should
// always assume that all function calls and event handlers are async.
onStart: async function() {
console.info('TOC plugin started!');
},
});
</code></pre>
<p>If you now build the plugin and try to run it in Joplin, you should see the message <code>TOC plugin started!</code> in the dev console.</p>
<h2>Getting the current note<a name="getting-the-current-note" href="#getting-the-current-note" class="heading-anchor">🔗</a></h2>
<p>In order to create the table of content, you will need to access the content of the currently selected note, and you will need to refresh the TOC every time the note changes. All this can be done using the <a href="https://joplinapp.org/api/references/plugin_api/classes/joplinworkspace.html">workspace API</a>, which provides information about the active content being edited.</p>
<p>So within the <code>onStart()</code> event handler, add the following:</p>
<pre><code class="language-typescript">joplin.plugins.register({
onStart: async function() {
// Later, this is where you'll want to update the TOC
async function updateTocView() {
// Get the current note from the workspace.
const note = await joplin.workspace.selectedNote();
// Keep in mind that it can be `null` if nothing is currently selected!
if (note) {
console.info('Note content has changed! New note is:', note);
} else {
console.info('No note is selected');
}
}
// This event will be triggered when the user selects a different note
await joplin.workspace.onNoteSelectionChange(() =&gt; {
updateTocView();
});
// This event will be triggered when the content of the note changes
// as you also want to update the TOC in this case.
await joplin.workspace.onNoteChange(() =&gt; {
updateTocView();
});
// Also update the TOC when the plugin starts
updateTocView();
},
});
</code></pre>
<p>Try the above and you should see in the console the event handler being called every time a new note is opened, or whenever the note content changes.</p>
<h2>Getting the note sections and slugs<a name="getting-the-note-sections-and-slugs" href="#getting-the-note-sections-and-slugs" class="heading-anchor">🔗</a></h2>
<p>Now that you have the current note, you'll need to extract the headers from that note in order to build the TOC from it. Since the note content is plain Markdown, there are several ways to do so, such as using a Markdown parser, but for now a quick and dirty solution is to get all the lines that start with any number of <code>#</code> followed by a space. Any such line should be a header.</p>
<p>The function below, which you can copy anywhere in your file, will use this method and return an array of headers, with the text and level (H1, H2, etc.) of header:</p>
<pre><code class="language-typescript">function noteHeaders(noteBody:string) {
const headers = [];
const lines = noteBody.split('\n');
for (const line of lines) {
const match = line.match(/^(#+)\s(.*)*/);
if (!match) continue;
headers.push({
level: match[1].length,
text: match[2],
});
}
return headers;
}
</code></pre>
<p>Then call this function from your event handler:</p>
<pre><code class="language-typescript">joplin.plugins.register({
onStart: async function() {
async function updateTocView() {
const note = await joplin.workspace.selectedNote();
if (note) {
const headers = noteHeaders(note.body);
console.info('The note has the following headers', headers);
} else {
console.info('No note is selected');
}
}
// ...
},
});
</code></pre>
<p>Later you will also need a way to generate the slug for each header. A slug is an identifier which is used to link to a particular header. Essentially a header text like &quot;My Header&quot; is converted to &quot;my-header&quot;. And if there's already a slug with that name, a number is appended to it. Without going into too much details, you will need the &quot;slug&quot; package to generate this for you, so install it using <code>npm i -s 'git+https://github.com/laurent22/uslug.git#emoji-support'</code> from the root of your plugin directory (Note: you can also install the &quot;uslug&quot; package on its own, but it won't have emoji support).</p>
<p>Then this is the function you will need for Joplin, so copy it somewhere in your file:</p>
<pre><code class="language-typescript">const uslug = require('uslug');
let slugs = {};
function headerSlug(headerText) {
const s = uslug(headerText);
let num = slugs[s] ? slugs[s] : 1;
const output = [s];
if (num &gt; 1) output.push(num);
slugs[s] = num + 1;
return output.join('-');
}
</code></pre>
<p>And you will need a utility function to escape HTML. There are many packages to do this but for now you can simply use this:</p>
<pre><code class="language-typescript">// From https://stackoverflow.com/a/6234804/561309
function escapeHtml(unsafe:string) {
return unsafe
.replace(/&amp;/g, &quot;&amp;amp;&quot;)
.replace(/&lt;/g, &quot;&amp;lt;&quot;)
.replace(/&gt;/g, &quot;&amp;gt;&quot;)
.replace(/&quot;/g, &quot;&amp;quot;&quot;)
.replace(/'/g, &quot;&amp;#039;&quot;);
}
</code></pre>
<p>Again try to run the plugin and if you select a note with multiple headers, you should see the header list in the console.</p>
<h2>Creating a webview<a name="creating-a-webview" href="#creating-a-webview" class="heading-anchor">🔗</a></h2>
<p>In order to display the TOC in Joplin, you will need a <a href="https://joplinapp.org/api/references/plugin_api/classes/joplinviewspanels.html">webview panel</a>. Panels are a simple way to add custom content to the UI using HTML/CSS and JavaScript. First you would create the panel object and get back a view handler. Using this handler, you can set various properties such as the HTML content.</p>
<p>Here's how it could be done:</p>
<pre><code class="language-typescript">joplin.plugins.register({
onStart: async function() {
// Create the panel object
const panel = await joplin.views.panels.create('panel_1');
// Set some initial content while the TOC is being created
await joplin.views.panels.setHtml(panel, 'Loading...');
async function updateTocView() {
const note = await joplin.workspace.selectedNote();
slugs = {}; // Reset the slugs
if (note) {
const headers = noteHeaders(note.body);
// First create the HTML for each header:
const itemHtml = [];
for (const header of headers) {
const slug = headerSlug(header.text);
// - We indent each header based on header.level.
//
// - The slug will be needed later on once we implement clicking on a header.
// We assign it to a &quot;data&quot; attribute, which can then be easily retrieved from JavaScript
//
// - Also make sure you escape the text before inserting it in the HTML to avoid XSS attacks
// and rendering issues. For this use the `escapeHtml()` function you've added earlier.
itemHtml.push(`
&lt;p class=&quot;toc-item&quot; style=&quot;padding-left:${(header.level - 1) * 15}px&quot;&gt;
&lt;a class=&quot;toc-item-link&quot; href=&quot;#&quot; data-slug=&quot;${escapeHtml(slug)}&quot;&gt;
${escapeHtml(header.text)}
&lt;/a&gt;
&lt;/p&gt;
`);
}
// Finally, insert all the headers in a container and set the webview HTML:
await joplin.views.panels.setHtml(panel, `
&lt;div class=&quot;container&quot;&gt;
${itemHtml.join('\n')}
&lt;/div&gt;
`);
} else {
await joplin.views.panels.setHtml(panel, 'Please select a note to view the table of content');
}
}
// ...
},
});
</code></pre>
<p>Now run the plugin again and you should see the TOC dynamically updating as you change notes.</p>
<h2>Styling the view<a name="styling-the-view" href="#styling-the-view" class="heading-anchor">🔗</a></h2>
<p>In order to better integrate the TOC to Joplin, you might want to style it using CSS. To do so, first add a <code>webview.css</code> file next to <code>index.ts</code>, then you will need to let Joplin know about this file. This is done using the <code>addScript()</code> function (which is also used to add JavaScript files as we'll see later), like so:</p>
<pre><code class="language-typescript">const panel = await joplin.views.panels.create('panel_1');
// Add the CSS file to the view, right after it has been created:
await joplin.views.panels.addScript(panel, './webview.css');
</code></pre>
<p>This file is just a plain CSS file you can use to style your view. Additionally, you can access from there a number of theme variables, which you can use to better integrate the view to the UI. For example, using these variables you can use a dark background in dark mode, and a light one in light mode.</p>
<p>The CSS file below would give the view the correct font color and family, and the right background colour:</p>
<pre><code class="language-css">/* In webview.css */
.container {
background-color: var(--joplin-background-color);
color: var(--joplin-color);
font-size: var(--joplin-font-size);
font-family: var(--joplin-font-family);
}
.toc-item a {
color: var(--joplin-color);
text-decoration: none;
}
</code></pre>
<p>Try the plugin and the styling should be improved. You may also try to switch to dark or light mode and see the style being updated.</p>
<h2>Making the webview interactive<a name="making-the-webview-interactive" href="#making-the-webview-interactive" class="heading-anchor">🔗</a></h2>
<p>The next step is to make the TOC interactive so that when the user clicks on a link, the note is scrolled to right header. This can be done using an external JavaScript file that will handle the click events. As for the CSS file, create a <code>webview.js</code> file next to <code>index.ts</code>, then add the script to the webview:</p>
<pre><code class="language-typescript">// In index.ts
const panel = await joplin.views.panels.create('panel_1');
await joplin.views.panels.addScript(panel, './webview.css');
await joplin.views.panels.addScript(panel, './webview.js'); // Add the JS file
</code></pre>
<p>To check that everything's working, let's create a simple event handler that display the header slug when clicked:</p>
<pre><code class="language-javascript">// In webview.js
// There are many ways to listen to click events, you can even use
// something like jQuery or React. This is how it can be done using
// plain JavaScript:
document.addEventListener('click', event =&gt; {
const element = event.target;
// If a TOC header has been clicked:
if (element.className === 'toc-item-link') {
// Get the slug and display it:
const slug = element.dataset.slug;
console.info('Clicked header slug: ' + slug);
}
});
</code></pre>
<p>If everything works well, you should now see the slug in the console whenever you click on a header link. The next step will be to use that slug to scroll to the right header.</p>
<h2>Passing messages between the webview and the plugin<a name="passing-messages-between-the-webview-and-the-plugin" href="#passing-messages-between-the-webview-and-the-plugin" class="heading-anchor">🔗</a></h2>
<p>For security reason, webviews run within their own sandbox (iframe) and thus do not have access to the Joplin API. You can however send messages to and from the webview to the plugin, and you can call the Joplin API from the plugin.</p>
<p>From within a webview, you have access to the webviewApi object, which among others has a <code>postMessage()</code> function you can use to send a message to the plugin. Let's use this to post the slug info to the plugin:</p>
<p>Change <code>webview.js</code> like so:</p>
<pre><code class="language-javascript">document.addEventListener('click', event =&gt; {
const element = event.target;
if (element.className === 'toc-item-link') {
// Post the message and slug info back to the plugin:
webviewApi.postMessage({
name: 'scrollToHash',
hash: element.dataset.slug,
});
}
});
</code></pre>
<p>Then from the plugin, in <code>src/index.ts</code>, you can listen to this message using the <code>onMessage()</code> handler. Then from this handler, you can call the <code>scrollToHash</code> command and pass it the slug (or hash).</p>
<pre><code class="language-typescript">joplin.plugins.register({
onStart: async function() {
const panel = await joplin.views.panels.create('panel_1');
// ...
await joplin.views.panels.onMessage(panel, (message) =&gt; {
if (message.name === 'scrollToHash') {
// As the name says, the scrollToHash command makes the note scroll
// to the provided hash.
joplin.commands.execute('scrollToHash', message.hash)
}
});
// ...
}
// ...
</code></pre>
<p>And that's it! If you run this code you should now have a fully functional TOC. The full source code is available there:</p>
<p><a href="https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/toc/">https://github.com/laurent22/joplin/tree/dev/packages/app-cli/tests/support/plugins/toc/</a></p>
<p>Various improvements can be made such as improving the styling, making the header collapsible, etc. but that tutorial should provide the basic building blocks to do so. You might also want to check the <a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">plugin API</a> for further information or head to the <a href="https://discourse.joplinapp.org/c/development/6">development forum</a> for support.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/tutorials/toc_plugin.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,392 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/build_troubleshooting.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/build_troubleshooting.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Desktop application | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-build_troubleshooting">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Desktop application<a name="desktop-application" href="#desktop-application" class="heading-anchor">🔗</a></h1>
<h2>On Windows<a name="on-windows" href="#on-windows" class="heading-anchor">🔗</a></h2>
<p>If <code>yarn dist</code> fails, it may need administrative rights.</p>
<p>If you get an <code>error MSB8020: The build tools for v140 cannot be found.</code> try to run with a different toolset version, eg <code>npm install --toolset=v141</code> (See <a href="https://github.com/mapbox/node-sqlite3/issues/1124">here</a> for more info). You may also try to install <code>npm --vs2015 install --global windows-build-tools</code> (the --vs2015 flag is to get toolkit &quot;v140&quot;, which is what is used by default).</p>
<p>There are various errors that can occur from an improper build environment (such as MSBUILD: error MSB3428). It is recommended to install <code>windows-build-tools</code> with the command <code>npm install --global windows-build-tools</code> (elevation required) and then using these two commands to set the environmental variables to the proper values:</p>
<pre><code class="language-batch">call &quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsamd64_x86.bat&quot;
set &quot;PATH=C:\Program Files\nodejs;%PATH%&quot;
</code></pre>
<h2>On Linux and macOS<a name="on-linux-and-macos" href="#on-linux-and-macos" class="heading-anchor">🔗</a></h2>
<p>If there's an error <code>while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory</code>, run <code>sudo apt-get install libgconf-2-4</code></p>
<p>If you get a node-gyp related error, you might need to manually install it: <code>npm install -g node-gyp</code>.</p>
<p>If you get unexpected <code>npm</code> dependency errors on a fresh git pull, try <code>npm run clean</code></p>
<p>If <code>npm i</code> gives you a fatal error like the following:</p>
<pre><code>node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v5.0.1/napi-v6-linux-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for sqlite3@5.0.1 and node@14.15.4 (node-v83 ABI, glibc) (falling back to source compile with node-gyp)
/bin/sh: 1: python: not found
</code></pre>
<p>Try <code>sudo apt install python</code> (or the <code>apt</code> equivalent for your operating system) and then run <code>npm i</code> again.</p>
<p>If you get the error <code>libtool: unrecognized option '-static'</code>, follow the instructions <a href="https://stackoverflow.com/a/38552393/561309">in this post</a> to use the correct libtool version.</p>
<h2>Other issues<a name="other-issues" href="#other-issues" class="heading-anchor">🔗</a></h2>
<blockquote>
<p>The application window doesn't open or is white</p>
</blockquote>
<p>This is an indication that there's an early initialisation error. Try this:</p>
<ul>
<li>In ElectronAppWrapper, set <code>debugEarlyBugs</code> to <code>true</code>. This will force the window to show up and should open the console next to it, which should display any error.</li>
<li>In more rare cases, an already open instance of Joplin can create strange low-level bugs that will display no error but will result in this white window. A non-dev instance of Joplin, or a dev instance that wasn't properly closed might cause this. So make sure you close everything and try again. Perhaps even other Electron apps running (Skype, Slack, etc.) could cause this?</li>
<li>Also try to delete node_modules and rebuild.</li>
<li>If all else fails, switch your computer off and on again, to make sure you start clean.</li>
</ul>
<blockquote>
<p>How to work on the app from Windows?</p>
</blockquote>
<p><strong>You should not use WSL at all</strong> because this is a GUI app that lives outside of WSL, and the WSL layer can cause all kind of very hard to debug issues. It can also lock files in node_modules that cannot be unlocked when the app crashes. (You need to restart your computer.) Likewise, don't run the TypeScript watch command from WSL.</p>
<p>So everything should be done from a Windows Command prompt or Windows PowerShell running as Administrator. All build and start commands are designed to work cross-platform, including on Windows.</p>
<h1>Mobile application<a name="mobile-application" href="#mobile-application" class="heading-anchor">🔗</a></h1>
<h2>iOS<a name="ios" href="#ios" class="heading-anchor">🔗</a></h2>
<p>If there is an error <code>/joplin/packages/app-mobile/ios/Pods/Target Support Files/Pods-Joplin/Pods-Joplin.debug.xcconfig: unable to open file (in target &quot;Joplin&quot; in project &quot;Joplin&quot;) (in target 'Joplin' from project 'Joplin')</code> run the following commands:</p>
<pre><code>cd ios
pod deintegrate
pod install
</code></pre>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/build_troubleshooting.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,503 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/changelog_android.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/changelog_android.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Joplin Android app changelog | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-changelog_android">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Joplin Android app changelog<a name="joplin-android-app-changelog" href="#joplin-android-app-changelog" class="heading-anchor">🔗</a></h1>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.6.8">android-v2.6.8</a> - 2021-12-17T10:15:00Z<a name="android-v2-6-8-https-github-com-laurent22-joplin-releases-tag-android-v2-6-8-2021-12-17t10-15-00z" href="#android-v2-6-8-https-github-com-laurent22-joplin-releases-tag-android-v2-6-8-2021-12-17t10-15-00z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Update Mermaid: 8.12.1 -&gt; 8.13.5 (#5831 by Helmut K. C. Tessarek)</li>
<li>Fixed: Links in flowchart Mermaid diagrams (#5830) (#5801 by Helmut K. C. Tessarek)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.6.5">android-v2.6.5</a> (Pre-release) - 2021-12-13T09:41:18Z<a name="android-v2-6-5-https-github-com-laurent22-joplin-releases-tag-android-v2-6-5-pre-release-2021-12-13t09-41-18z" href="#android-v2-6-5-https-github-com-laurent22-joplin-releases-tag-android-v2-6-5-pre-release-2021-12-13t09-41-18z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed &quot;Invalid lock client type&quot; error when migrating sync target (e0e93c4)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.6.4">android-v2.6.4</a> (Pre-release) - 2021-12-01T11:38:49Z<a name="android-v2-6-4-https-github-com-laurent22-joplin-releases-tag-android-v2-6-4-pre-release-2021-12-01t11-38-49z" href="#android-v2-6-4-https-github-com-laurent22-joplin-releases-tag-android-v2-6-4-pre-release-2021-12-01t11-38-49z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Also duplicate resources when duplicating a note (c0a8c33)</li>
<li>Improved: Improved S3 sync error handling and reliability, and upgraded S3 SDK (#5312 by Lee Matos)</li>
<li>Fixed: Alarm setting buttons were no longer visible (#5777)</li>
<li>Fixed: Alarms were not being triggered in some cases (#5798) (#5216 by Roman Musin)</li>
<li>Fixed: Fixed opening attachments (6950c40)</li>
<li>Fixed: Handle duplicate attachments when the parent notebook is shared (#5796)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.6.3">android-v2.6.3</a> (Pre-release) - 2021-11-21T16:59:46Z<a name="android-v2-6-3-https-github-com-laurent22-joplin-releases-tag-android-v2-6-3-pre-release-2021-11-21t16-59-46z" href="#android-v2-6-3-https-github-com-laurent22-joplin-releases-tag-android-v2-6-3-pre-release-2021-11-21t16-59-46z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add date format YYYY/MM/DD (#5759 by Helmut K. C. Tessarek)</li>
<li>New: Add support for faster built-in sync locks (#5662)</li>
<li>New: Add support for sharing notes when E2EE is enabled (#5529)</li>
<li>New: Added support for notebook icons (e97bb78)</li>
<li>Improved: Improved error message when synchronising with Joplin Server (#5754)</li>
<li>Improved: Makes it impossible to have multiple instances of the app open (#5587 by Filip Stanis)</li>
<li>Improved: Remove non-OSS dependencies (#5735 by <a href="https://github.com/muelli">@muelli</a>)</li>
<li>Fixed: Fixed issue that could cause application to needlessly lock the sync target (0de6e9e)</li>
<li>Fixed: Fixed issue with parts of HTML notes not being displayed in some cases (#5687)</li>
<li>Fixed: Sharing multiple notebooks via Joplin Server with the same user results in an error (#5721)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.6.1">android-v2.6.1</a> (Pre-release) - 2021-11-02T20:49:53Z<a name="android-v2-6-1-https-github-com-laurent22-joplin-releases-tag-android-v2-6-1-pre-release-2021-11-02t20-49-53z" href="#android-v2-6-1-https-github-com-laurent22-joplin-releases-tag-android-v2-6-1-pre-release-2021-11-02t20-49-53z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Upgraded React Native from 0.64 to 0.66 (66e79cc)</li>
<li>Fixed: Fixed potential infinite loop when Joplin Server session is invalid (c5569ef)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.5.5">android-v2.5.5</a> (Pre-release) - 2021-10-31T11:03:16Z<a name="android-v2-5-5-https-github-com-laurent22-joplin-releases-tag-android-v2-5-5-pre-release-2021-10-31t11-03-16z" href="#android-v2-5-5-https-github-com-laurent22-joplin-releases-tag-android-v2-5-5-pre-release-2021-10-31t11-03-16z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add padding around beta text editor (365e152)</li>
<li>Improved: Capitalise first word of sentence in beta editor (4128be9)</li>
<li>Fixed: Do not render very large code blocks to prevent app from freezing (#5593)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.5.3">android-v2.5.3</a> (Pre-release) - 2021-10-28T21:47:18Z<a name="android-v2-5-3-https-github-com-laurent22-joplin-releases-tag-android-v2-5-3-pre-release-2021-10-28t21-47-18z" href="#android-v2-5-3-https-github-com-laurent22-joplin-releases-tag-android-v2-5-3-pre-release-2021-10-28t21-47-18z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for public-private key pairs and improved master password support (#5438)</li>
<li>New: Added mechanism to migrate default settings to new values (72db8e4)</li>
<li>Improved: Ensure that shared notebook children are not deleted when shared, unshared and shared again, and a conflict happens (ccf9882)</li>
<li>Improved: Improve delete dialog message (#5481) (#4701 by Helmut K. C. Tessarek)</li>
<li>Improved: Improved Joplin Server configuration check to better handle disabled accounts (72c1235)</li>
<li>Improved: Improved handling of expired sessions when using Joplin Server (33249ca)</li>
<li>Fixed: Certain attachments were not being automatically deleted (#932)</li>
<li>Fixed: Fixed logic of setting master password in Encryption screen (#5585)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.4.3">android-v2.4.3</a> - 2021-09-29T18:47:24Z<a name="android-v2-4-3-https-github-com-laurent22-joplin-releases-tag-android-v2-4-3-2021-09-29t18-47-24z" href="#android-v2-4-3-https-github-com-laurent22-joplin-releases-tag-android-v2-4-3-2021-09-29t18-47-24z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fix default sync target (4b39d30)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.4.2">android-v2.4.2</a> (Pre-release) - 2021-09-22T17:02:37Z<a name="android-v2-4-2-https-github-com-laurent22-joplin-releases-tag-android-v2-4-2-pre-release-2021-09-22t17-02-37z" href="#android-v2-4-2-https-github-com-laurent22-joplin-releases-tag-android-v2-4-2-pre-release-2021-09-22t17-02-37z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow disabling any master key, including default or active one (9407efd)</li>
<li>Improved: Update Mermaid 8.10.2 -&gt; 8.12.1 and fix gitGraph crash (#5448) (#5295 by Helmut K. C. Tessarek)</li>
<li>Fixed: Misinterpreted search term after filter in quotation marks (#5445) (#5444 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.4.1">android-v2.4.1</a> (Pre-release) - 2021-08-30T13:37:34Z<a name="android-v2-4-1-https-github-com-laurent22-joplin-releases-tag-android-v2-4-1-pre-release-2021-08-30t13-37-34z" href="#android-v2-4-1-https-github-com-laurent22-joplin-releases-tag-android-v2-4-1-pre-release-2021-08-30t13-37-34z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add a way to disable a master key (7faa58e)</li>
<li>New: Add support for single master password, to simplify handling of multiple encryption keys (ce89ee5)</li>
<li>New: Added &quot;None&quot; sync target to allow disabling synchronisation (f5f05e6)</li>
<li>Improved: Do not display master key upgrade warnings for new master keys (70efadd)</li>
<li>Improved: Improved sync locks so that they do not prevent upgrading a sync target (06ed58b)</li>
<li>Improved: Show the used tags first in the tagging dialog (#5315 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Fixed: Fixed crash when a required master key does not exist (#5391)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.3.4">android-v2.3.4</a> (Pre-release) - 2021-08-15T13:27:57Z<a name="android-v2-3-4-https-github-com-laurent22-joplin-releases-tag-android-v2-3-4-pre-release-2021-08-15t13-27-57z" href="#android-v2-3-4-https-github-com-laurent22-joplin-releases-tag-android-v2-3-4-pre-release-2021-08-15t13-27-57z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Bump hightlight.js to v11.2 (#5278) (#5245 by Roman Musin)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.3.3">android-v2.3.3</a> (Pre-release) - 2021-08-12T20:46:15Z<a name="android-v2-3-3-https-github-com-laurent22-joplin-releases-tag-android-v2-3-3-pre-release-2021-08-12t20-46-15z" href="#android-v2-3-3-https-github-com-laurent22-joplin-releases-tag-android-v2-3-3-pre-release-2021-08-12t20-46-15z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved E2EE usability by making its state a property of the sync target (#5276)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.2.5">android-v2.2.5</a> (Pre-release) - 2021-08-11T10:54:38Z<a name="android-v2-2-5-https-github-com-laurent22-joplin-releases-tag-android-v2-2-5-pre-release-2021-08-11t10-54-38z" href="#android-v2-2-5-https-github-com-laurent22-joplin-releases-tag-android-v2-2-5-pre-release-2021-08-11t10-54-38z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Revert &quot;Plugins: Add ability to make dialogs fit the application window (#5219)&quot; as it breaks several plugin webviews.</li>
<li>Revert &quot;Resolves #4810, Resolves #4610: Fix AWS S3 sync error and upgrade framework to v3 (#5212)&quot; due to incompatibility with some AWS providers.</li>
<li>Improved: Upgraded React Native to v0.64 (afb7e1a)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.2.3">android-v2.2.3</a> (Pre-release) - 2021-08-09T18:48:29Z<a name="android-v2-2-3-https-github-com-laurent22-joplin-releases-tag-android-v2-2-3-pre-release-2021-08-09t18-48-29z" href="#android-v2-2-3-https-github-com-laurent22-joplin-releases-tag-android-v2-2-3-pre-release-2021-08-09t18-48-29z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Ensure that timestamps are not changed when sharing or unsharing a note (cafaa9c)</li>
<li>Improved: Fix AWS S3 sync error and upgrade framework to v3 (#5212) (#4810 by Lee Matos)</li>
<li>Improved: Handles OneDrive throttling responses and sets User-Agent based on Microsoft best practices (#5246) (#5244 by <a href="https://github.com/alec">@alec</a>)</li>
<li>Improved: Make sync icon spin in the right direction (#5275) (#4588 by Lee Matos)</li>
<li>Fixed: Fixed issue with orphaned resource being created in case of a resource conflict (#5223)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.2.1">android-v2.2.1</a> (Pre-release) - 2021-07-13T17:37:38Z<a name="android-v2-2-1-https-github-com-laurent22-joplin-releases-tag-android-v2-2-1-pre-release-2021-07-13t17-37-38z" href="#android-v2-2-1-https-github-com-laurent22-joplin-releases-tag-android-v2-2-1-pre-release-2021-07-13t17-37-38z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added improved editor (beta)</li>
<li>Improved: Disable backup to Google Drive (#5114 by Roman Musin)</li>
<li>Improved: Interpret only valid search filters (#5103) (#3871 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Improved: Removed old editor code (e01a175)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.1.4">android-v2.1.4</a> - 2021-07-03T08:31:36Z<a name="android-v2-1-4-https-github-com-laurent22-joplin-releases-tag-android-v2-1-4-2021-07-03t08-31-36z" href="#android-v2-1-4-https-github-com-laurent22-joplin-releases-tag-android-v2-1-4-2021-07-03t08-31-36z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixes #5133: Items keep being uploaded to Joplin Server after a note has been shared.</li>
<li>Fixed: Fixed issue where untitled notes where created after a note had been shared and synced</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.1.3">android-v2.1.3</a> - 2021-06-27T13:34:12Z<a name="android-v2-1-3-https-github-com-laurent22-joplin-releases-tag-android-v2-1-3-2021-06-27t13-34-12z" href="#android-v2-1-3-https-github-com-laurent22-joplin-releases-tag-android-v2-1-3-2021-06-27t13-34-12z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for X-API-MIN-VERSION header (51f3c00)</li>
<li>Improved: Activate Joplin Server optimisations (3d03321)</li>
<li>Improved: Also allow disabling TLS errors for Joplin Cloud to go around error UNABLE_TO_GET_ISSUER_CERT_LOCALLY (118a2f9)</li>
<li>Fixed: Fixed search when the index contains non-existing notes (5ecac21)</li>
<li>Fixed: Fixed version number on config screen (65e9268)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.1.2">android-v2.1.2</a> (Pre-release) - 2021-06-20T18:36:23Z<a name="android-v2-1-2-https-github-com-laurent22-joplin-releases-tag-android-v2-1-2-pre-release-2021-06-20t18-36-23z" href="#android-v2-1-2-https-github-com-laurent22-joplin-releases-tag-android-v2-1-2-pre-release-2021-06-20t18-36-23z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed error that could prevent a revision from being created, and that would prevent the revision service from processing the rest of the notes (#5051)</li>
<li>Fixed: Fixed issue when trying to sync an item associated with a share that no longer exists (5bb68ba)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.1.1">android-v2.1.1</a> (Pre-release) - 2021-06-19T16:42:57Z<a name="android-v2-1-1-https-github-com-laurent22-joplin-releases-tag-android-v2-1-1-pre-release-2021-06-19t16-42-57z" href="#android-v2-1-1-https-github-com-laurent22-joplin-releases-tag-android-v2-1-1-pre-release-2021-06-19t16-42-57z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add version number to log (525ab01)</li>
<li>New: Added feature flags to disable Joplin Server sync optimisations by default, so that it still work with server 2.0 (326fef4)</li>
<li>Improved: Allow enabling and disabling feature flags (5b368e3)</li>
<li>Improved: Allow uploading items in batch when synchronising with Joplin Server (0222c0f)</li>
<li>Improved: Improved first sync speed when synchronising with Joplin Server (4dc1210)</li>
<li>Improved: Mask auth token and password in log (0d33955)</li>
<li>Improved: Optimise first synchronisation, when items have never been synced before (15ce5cd)</li>
<li>Improved: Update Mermaid: 8.8.4 -&gt; 8.10.2 (#5092 by Helmut K. C. Tessarek)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.0.4">android-v2.0.4</a> - 2021-06-16T12:15:56Z<a name="android-v2-0-4-https-github-com-laurent22-joplin-releases-tag-android-v2-0-4-2021-06-16t12-15-56z" href="#android-v2-0-4-https-github-com-laurent22-joplin-releases-tag-android-v2-0-4-2021-06-16t12-15-56z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Prevent sync process from being stuck when the download state of a resource is invalid (5c6fd93)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.0.3">android-v2.0.3</a> (Pre-release) - 2021-06-16T09:48:58Z<a name="android-v2-0-3-https-github-com-laurent22-joplin-releases-tag-android-v2-0-3-pre-release-2021-06-16t09-48-58z" href="#android-v2-0-3-https-github-com-laurent22-joplin-releases-tag-android-v2-0-3-pre-release-2021-06-16t09-48-58z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Verbose mode for synchronizer (4bbb3d1)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/android-v2.0.2">android-v2.0.2</a> - 2021-06-15T20:03:21Z<a name="android-v2-0-2-https-github-com-laurent22-joplin-releases-tag-android-v2-0-2-2021-06-15t20-03-21z" href="#android-v2-0-2-https-github-com-laurent22-joplin-releases-tag-android-v2-0-2-2021-06-15t20-03-21z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Conflict notes will now populate a new field with the ID of the conflict note. (#5049 by <a href="https://github.com/Ahmad45123">@Ahmad45123</a>)</li>
<li>Improved: Filter out form elements from note body to prevent potential XSS (thanks to Dmytro Vdovychinskiy for the PoC) (feaecf7)</li>
<li>Improved: Focus note editor where tapped instead of scrolling to the end (#4998) (#4216 by Roman Musin)</li>
<li>Improved: Improve search with Asian scripts (#5018) (#4613 by <a href="https://github.com/mablin7">@mablin7</a>)</li>
<li>Fixed: Fixed and improved alarm notifications (#4984) (#4912 by Roman Musin)</li>
<li>Fixed: Fixed opening URLs that contain non-alphabetical characters (#4494)</li>
<li>Fixed: Fixed user content URLs when sharing note via Joplin Server (2cf7067)</li>
<li>Fixed: Inline Katex gets broken when editing in Rich Text editor (#5052) (#5025 by <a href="https://github.com/Subhra264">@Subhra264</a>)</li>
<li>Fixed: Items are filtered in the API search (#5017) (#5007 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Fixed: Wrong field removed in API search (#5066 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/changelog_android.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,734 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/changelog_cli.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/changelog_cli.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Joplin terminal app changelog | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-changelog_cli">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</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-v2.6.2">cli-v2.6.2</a> - 2021-12-17T11:19:45Z<a name="cli-v2-6-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-6-2-2021-12-17t11-19-45z" href="#cli-v2-6-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-6-2-2021-12-17t11-19-45z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add date format YYYY/MM/DD (#5759 by Helmut K. C. Tessarek)</li>
<li>New: Add support for faster built-in sync locks (#5662)</li>
<li>New: Add support for more style of highlighted texts when importing ENEX files (89179c2)</li>
<li>New: Add support for sharing notes when E2EE is enabled (#5529)</li>
<li>Improved: Also duplicate resources when duplicating a note (c0a8c33)</li>
<li>Improved: Ask for master password when encryption or decryption fails (c19e59f)</li>
<li>Improved: Improved S3 sync error handling and reliability, and upgraded S3 SDK (#5312 by Lee Matos)</li>
<li>Improved: Improved error message when synchronising with Joplin Server (#5754)</li>
<li>Improved: Update Mermaid: 8.12.1 -&gt; 8.13.5 (#5831 by Helmut K. C. Tessarek)</li>
<li>Improved: When exporting as HTML, pack all images, styles and scripts inside the HTML file (98ed2be)</li>
<li>Fixed: Fixed &quot;Invalid lock client type&quot; error when migrating sync target (e0e93c4)</li>
<li>Fixed: Fixed issue that could cause application to needlessly lock the sync target (0de6e9e)</li>
<li>Fixed: Handle duplicate attachments when the parent notebook is shared (#5796)</li>
<li>Fixed: Links in flowchart Mermaid diagrams (#5830) (#5801 by Helmut K. C. Tessarek)</li>
<li>Fixed: Long resource filenames were being incorrectly cut (#5653)</li>
<li>Fixed: Sharing multiple notebooks via Joplin Server with the same user results in an error (#5721)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.6.1">cli-v2.6.1</a> - 2021-11-03T11:33:18Z<a name="cli-v2-6-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-6-1-2021-11-03t11-33-18z" href="#cli-v2-6-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-6-1-2021-11-03t11-33-18z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for public-private key pairs and improved master password support (#5438)</li>
<li>New: Added mechanism to migrate default settings to new values (72db8e4)</li>
<li>Improved: Add Markdown + Front Matter exporter/importer (#5465) (#5224 by <a href="https://github.com/CalebJohn">@CalebJohn</a>)</li>
<li>Improved: Ensure that shared notebook children are not deleted when shared, unshared and shared again, and a conflict happens (ccf9882)</li>
<li>Improved: Improved Joplin Server configuration check to better handle disabled accounts (72c1235)</li>
<li>Improved: Improved handling of expired sessions when using Joplin Server (33249ca) (ace1118)</li>
<li>Fixed: Certain attachments were not being automatically deleted (#932)</li>
<li>Fixed: Fix default sync target (4b39d30)</li>
<li>Fixed: Fixed potential infinite loop when Joplin Server session is invalid (c5569ef)</li>
<li>Fixed: Fixed running out of memory when importing large ENEX files (#5543)</li>
<li>Fixed: Ignore newline between quotes while spliting batch (#5540) (#5341 by Kingsley Yung)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.4.1">cli-v2.4.1</a> - 2021-09-29T15:28:01Z<a name="cli-v2-4-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-4-1-2021-09-29t15-28-01z" href="#cli-v2-4-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-4-1-2021-09-29t15-28-01z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add a way to disable a master key (7faa58e)</li>
<li>New: Add support for single master password, to simplify handling of multiple encryption keys (ce89ee5)</li>
<li>New: Added &quot;None&quot; sync target to allow disabling synchronisation (f5f05e6)</li>
<li>Improved: Allow importing certain corrupted ENEX files (f144dae)</li>
<li>Improved: Improved sync locks so that they do not prevent upgrading a sync target (06ed58b)</li>
<li>Fixed: Fixed file paths when exporting as HTML (#5325)</li>
<li>Fixed: Misinterpreted search term after filter in quotation marks (#5445) (#5444 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Fixed: Setting note contents using &quot;set&quot; command does not update note timestamp (#5435)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.3.2">cli-v2.3.2</a> - 2021-08-16T09:38:40Z<a name="cli-v2-3-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-3-2-2021-08-16t09-38-40z" href="#cli-v2-3-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-3-2-2021-08-16t09-38-40z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved E2EE usability by making its state a property of the sync target (#5276)</li>
<li>Fixed: Bump hightlight.js to v11.2 (#5278) (#5245 by Roman Musin)</li>
<li>Fixed: Fixed version command so that it does not require the keychain (ca6d8ec)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.2.2">cli-v2.2.2</a> - 2021-08-11T15:34:56Z<a name="cli-v2-2-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-2-2-2021-08-11t15-34-56z" href="#cli-v2-2-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-2-2-2021-08-11t15-34-56z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed version command so that it does not require the keychain (15766d1)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.2.1">cli-v2.2.1</a> - 2021-08-10T10:21:09Z<a name="cli-v2-2-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-2-1-2021-08-10t10-21-09z" href="#cli-v2-2-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-2-1-2021-08-10t10-21-09z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Ensure that timestamps are not changed when sharing or unsharing a note (cafaa9c)</li>
<li>Improved: Fix AWS S3 sync error and upgrade framework to v3 (#5212) (#4810 by Lee Matos)</li>
<li>Improved: Handles OneDrive throttling responses and sets User-Agent based on Microsoft best practices (#5246) (#5244 by <a href="https://github.com/alec">@alec</a>)</li>
<li>Improved: Interpret only valid search filters (#5103) (#3871 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Fixed: Do not export share properties (#5232)</li>
<li>Fixed: Fixed issue with orphaned resource being created in case of a resource conflict (#5223)</li>
<li>Fixed: Import highlighted text from ENEX files (#5213)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.1.2">cli-v2.1.2</a> - 2021-06-27T15:51:36Z<a name="cli-v2-1-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-1-2-2021-06-27t15-51-36z" href="#cli-v2-1-2-https-github-com-laurent22-joplin-releases-tag-cli-v2-1-2-2021-06-27t15-51-36z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for X-API-MIN-VERSION header (51f3c00)</li>
<li>New: Added flag to disable local lock when synchronising (7aff6d2)</li>
<li>Improved: Allow uploading items in batch when synchronising with Joplin Server (0222c0f)</li>
<li>Improved: Also allow disabling TLS errors for Joplin Cloud to go around error UNABLE_TO_GET_ISSUER_CERT_LOCALLY (118a2f9)</li>
<li>Improved: Improved first sync speed when synchronising with Joplin Server (4dc1210)</li>
<li>Improved: Mask auth token and password in log (0d33955)</li>
<li>Improved: Optimise first synchronisation, when items have never been synced before (15ce5cd)</li>
<li>Improved: Update Mermaid: 8.8.4 -&gt; 8.10.2 (#5092 by Helmut K. C. Tessarek)</li>
<li>Fixed: Fixed error that could prevent a revision from being created, and that would prevent the revision service from processing the rest of the notes (#5051)</li>
<li>Fixed: Fixed issue when trying to sync an item associated with a share that no longer exists (5bb68ba)</li>
<li>Fixed: Fixed search when the index contains non-existing notes (5ecac21)</li>
<li>Fixed: Handle special type of code block when importing ENEX files (#4965)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v2.0.1">cli-v2.0.1</a> - 2021-06-16T19:06:28Z<a name="cli-v2-0-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-0-1-2021-06-16t19-06-28z" href="#cli-v2-0-1-https-github-com-laurent22-joplin-releases-tag-cli-v2-0-1-2021-06-16t19-06-28z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add new date format YYMMDD (#4954 by Helmut K. C. Tessarek)</li>
<li>New: Add support for sharing notebooks with Joplin Server (#4772)</li>
<li>Improved: Allow setting up E2EE without having to confirm the password (c5b0529)</li>
<li>Improved: Conflict notes will now populate a new field with the ID of the conflict note. (#5049 by <a href="https://github.com/Ahmad45123">@Ahmad45123</a>)</li>
<li>Improved: Import SVG as images when importing ENEX files (#4968)</li>
<li>Improved: Improve search with Asian scripts (#5018) (#4613 by <a href="https://github.com/mablin7">@mablin7</a>)</li>
<li>Improved: Prevent sync process from being stuck when the download state of a resource is invalid (5c6fd93)</li>
<li>Fixed: Fixed possible crash when trying to delete corrupted revision in revision service (#4845)</li>
<li>Fixed: Fixed user content URLs when sharing note via Joplin Server (2cf7067)</li>
<li>Fixed: Improved importing Evernote notes that contain codeblocks (#4965)</li>
<li>Fixed: Items are filtered in the API search (#5017) (#5007 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.8.1">cli-v1.8.1</a> - 2021-05-10T09:38:05Z<a name="cli-v1-8-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-8-1-2021-05-10t09-38-05z" href="#cli-v1-8-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-8-1-2021-05-10t09-38-05z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add &quot;id&quot; and &quot;due&quot; search filters (#4898 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>New: Add support for &quot;batch&quot; command (eef86d6)</li>
<li>Improved: Also duplicate the tags when the note is duplicated (#4876) (#3157 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Improved: Bump KaTeX to 0.13.3 (#4902 by Roman Musin)</li>
<li>Improved: Filter &quot;notebook&quot; can now be negated (#4651 by Naveen M V)</li>
<li>Improved: Improved error handling when importing ENEX (257cde4)</li>
<li>Improved: Save user settings to JSON file (71f976f)</li>
<li>Improved: Some imported ENEX files incorrectly had invisible sections (f7a457f)</li>
<li>Fixed: Disable WebDAV response caching (#4887) (#4706 by Roman Musin)</li>
<li>Fixed: Fixed issue when getting version info (54884d6)</li>
<li>Fixed: Fixed rendering of note and resource links (61399ce)</li>
<li>Fixed: Regression: Fixed network request repeat mechanism (ede6004)</li>
<li>Security: Apply npm audit security fixes (0b67446)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.6.4">cli-v1.6.4</a> - 2021-01-21T10:01:15Z<a name="cli-v1-6-4-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-4-2021-01-21t10-01-15z" href="#cli-v1-6-4-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-4-2021-01-21t10-01-15z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed infinite sync issue with OneDrive (#4305)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.6.3">cli-v1.6.3</a> - 2021-01-11T11:52:11Z<a name="cli-v1-6-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-3-2021-01-11t11-52-11z" href="#cli-v1-6-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-3-2021-01-11t11-52-11z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add more log info when a revision cannot be deleted due to still-encrypted itel</li>
<li>Improved: Do not display error message when fixing ENEX resource mime type (#4310)</li>
<li>Improved: Improve support for SVG images when importing ENEX files</li>
<li>Improved: Improved support for bold and italic format when importing ENEX file (#4316)</li>
<li>Improved: Support natural sorting by title (#4272 by <a href="https://github.com/volatilevar">@volatilevar</a>)</li>
<li>Improved: Upload Big Notes to Onedrive (#4120) (#3528 by Jonathan Heard)</li>
<li>Fixed: Fixed OneDrive issue that would require a full resync every time (#4324) (#4313 by Jonathan Heard)</li>
<li>Fixed: Fixed importing ENEX files that contain hidden sections</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.6.2">cli-v1.6.2</a> - 2021-01-11T11:41:56Z<a name="cli-v1-6-2-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-2-2021-01-11t11-41-56z" href="#cli-v1-6-2-https-github-com-laurent22-joplin-releases-tag-cli-v1-6-2-2021-01-11t11-41-56z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add more log info when a revision cannot be deleted due to still-encrypted item</li>
<li>Improved: Do not display error message when fixing ENEX resource mime type (#4310)</li>
<li>Improved: Improve support for SVG images when importing ENEX files</li>
<li>Improved: Improved support for bold and italic format when importing ENEX file (#4316)</li>
<li>Improved: Support natural sorting by title (#4272 by <a href="https://github.com/volatilevar">@volatilevar</a>)</li>
<li>Improved: Upload Big Notes to Onedrive (#4120) (#3528 by Jonathan Heard)</li>
<li>Fixed: Fixed OneDrive issue that would require a full resync every time (#4324) (#4313 by Jonathan Heard)</li>
<li>Fixed: Fixed importing ENEX files that contain hidden sections</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.5.1">cli-v1.5.1</a> - 2020-12-26T00:46:31Z<a name="cli-v1-5-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-5-1-2020-12-26t00-46-31z" href="#cli-v1-5-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-5-1-2020-12-26t00-46-31z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add table captions when importing ENEX files</li>
<li>Improved: Allow exporting conflict notes (#4095)</li>
<li>Improved: Allow lowercase filters when doing search</li>
<li>Improved: Improved error handling when importing ENEX files</li>
<li>Improved: Partially reverts #3975 (link rendering)</li>
<li>Fixed: Fix sorting by title in a case insensitive way</li>
<li>Fixed: Fixed basic search when executing a query in Chinese (#4034 by Naveen M V)</li>
<li>Fixed: Fixed importing ENEX files that contain empty resources</li>
<li>Fixed: Fixed importing ENEX files that contain resources with invalid mime type</li>
<li>Fixed: Fixed importing certain ENEX files that contain invalid dates</li>
<li>Fixed: Fixed importing certain code blocks from ENEX</li>
<li>Fixed: Fixed issue when searching for text that contains diacritic (#4152) (#4025 by Roman Musin)</li>
<li>Fixed: Fixed issues when importing hidden tables within hidden sections in Enex files</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.4.9">cli-v1.4.9</a> - 2020-11-26T15:00:37Z<a name="cli-v1-4-9-https-github-com-laurent22-joplin-releases-tag-cli-v1-4-9-2020-11-26t15-00-37z" href="#cli-v1-4-9-https-github-com-laurent22-joplin-releases-tag-cli-v1-4-9-2020-11-26t15-00-37z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow exporting conflict notes (#4095)</li>
<li>Improved: Allow lowercase filters when doing search</li>
<li>Improved: Refresh sidebar and notes when moving note outside of conflict folder</li>
<li>Fixed: Fix handling of new line escaping when using external edit</li>
<li>Fixed: Fixed importing certain ENEX files that contain invalid dates</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.4.3">cli-v1.4.3</a> - 2020-11-06T21:19:29Z<a name="cli-v1-4-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-4-3-2020-11-06t21-19-29z" href="#cli-v1-4-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-4-3-2020-11-06t21-19-29z" class="heading-anchor">🔗</a></h2>
<p>IMPORTANT: If you use the web API, please note that there are a few breaking changes in this release. See here for more information: <a href="https://github.com/laurent22/joplin/pull/3983#issue-509624899">https://github.com/laurent22/joplin/pull/3983#issue-509624899</a></p>
<ul>
<li>New: API: Adds ability to paginate data (#3983)</li>
<li>Fixed: Display proper error message when decryption worker cannot be started (#4000)</li>
<li>Fixed: Fixed OneDrive authentication</li>
<li>Fixed: Fixed sync issue when importing ENEX files that contain new line characters in the source URL attribute (#3955)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.3.3">cli-v1.3.3</a> - 2020-10-23T16:00:38Z<a name="cli-v1-3-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-3-3-2020-10-23t16-00-38z" href="#cli-v1-3-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-3-3-2020-10-23t16-00-38z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Added support for a custom S3 URL (#3921) (#3691 by <a href="https://github.com/aaron">@aaron</a>)</li>
<li>Improved: Allow setting note geolocation attributes via API (#3884)</li>
<li>Improved: Import &lt;strike&gt;,&lt;s&gt; tags (strikethrough) from Evernote (#3936 by Ian Slinger)</li>
<li>Improved: Removed OneDrive Dev sync target which was not really useful</li>
<li>Improved: Sort search results by average of multiple criteria, including 'Sort notes by' field setting (#3777 by <a href="https://github.com/shawnaxsom">@shawnaxsom</a>)</li>
<li>Improved: Sort tags in a case-insensitive way</li>
<li>Improved: Updated installation script with BSD support (#3930 by Andros Fenollosa)</li>
<li>Fixed: Crash when trying to change app locale (#3847)</li>
<li>Fixed: Fix search filters when language is in Korean or with accents (#3947 by Naveen M V)</li>
<li>Fixed: Fixed freeze when importing ENEX as HTML, and fixed potential error when importing resources (#3958)</li>
<li>Fixed: Fixed setting issue that would cause a password to be saved in plain text in the database, even when the keychain is working</li>
<li>Fixed: Importing ENEX as HTML was importing as Markdown (#3923)</li>
<li>Fixed: Regression: Fix export of pluginAssets when exporting to html/pdf (#3927 by Caleb John)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.2.3">cli-v1.2.3</a> - 2020-10-09T11:17:18Z<a name="cli-v1-2-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-3-2020-10-09t11-17-18z" href="#cli-v1-2-3-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-3-2020-10-09t11-17-18z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved handling of database migration failures</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.2.2">cli-v1.2.2</a> - 2020-09-29T11:33:53Z<a name="cli-v1-2-2-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-2-2020-09-29t11-33-53z" href="#cli-v1-2-2-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-2-2020-09-29t11-33-53z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed crash due to missing spellfix extension</li>
<li>Fixed: Fixed link generation when exporting to PDF or HTML (#3780)</li>
<li>Fixed: Improved handling of special characters when exporting to Markdown (#3760)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.2.1">cli-v1.2.1</a> - 2020-09-23T11:15:12Z<a name="cli-v1-2-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-1-2020-09-23t11-15-12z" href="#cli-v1-2-1-https-github-com-laurent22-joplin-releases-tag-cli-v1-2-1-2020-09-23t11-15-12z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed crash due to missing spellfix extension</li>
<li>Fixed: Fixed link generation when exporting to PDF or HTML (#3780)</li>
<li>Fixed: Improved handling of special characters when exporting to Markdown (#3760)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.1.8">cli-v1.1.8</a> - 2020-09-21T12:02:29Z<a name="cli-v1-1-8-https-github-com-laurent22-joplin-releases-tag-cli-v1-1-8-2020-09-21t12-02-29z" href="#cli-v1-1-8-https-github-com-laurent22-joplin-releases-tag-cli-v1-1-8-2020-09-21t12-02-29z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Do not prevent export when one item is still encrypted</li>
<li>Improved: Fix keytar library being loaded up in FreeBSD. (#3712) (#3711 by Jose Esteve)</li>
<li>Fixed: Fixed note export when there are folders with non-existing parents. Also fixed long path issue on Windows. (#3689)</li>
<li>Fixed: Increased file extension limit to 20 to prevent issue when using external editors (#3696)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.168">cli-v1.0.168</a> - 2020-09-14T08:47:08Z<a name="cli-v1-0-168-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-168-2020-09-14t08-47-08z" href="#cli-v1-0-168-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-168-2020-09-14t08-47-08z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Implemented reliable way to sync device and server clocks</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.167">cli-v1.0.167</a> - 2020-09-04T17:15:49Z<a name="cli-v1-0-167-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-167-2020-09-04t17-15-49z" href="#cli-v1-0-167-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-167-2020-09-04t17-15-49z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add mechanism to lock and upgrade sync targets (#3524)</li>
<li>Improved: Add search filters (#3213) (#1877 by Naveen M V)</li>
<li>Improved: Add support for OneDrive for Business (#3433) (#1266 by <a href="https://github.com/jonath92">@jonath92</a>)</li>
<li>Improved: Added link navigation shortcuts (#3275) (#3217 by j-krl)</li>
<li>Improved: When searching, weight notes using Okapi BM25 score (#3454 by Naveen M V)</li>
<li>Fixed: Fixed sync fetching issue (#3599) (#3591 by <a href="https://github.com/alexchee">@alexchee</a>)</li>
</ul>
<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>
<li>Improved: Allow importing ENEX files as HTML</li>
<li>Improved: Disable support for HTML export for now as it does not work</li>
<li>Improved: Upload attachments &gt; 4 MB when using OneDrive (#3195) (#173 by <a href="https://github.com/TheOnlyTrueJonathanHeard">@TheOnlyTrueJonathanHeard</a>)</li>
<li>Fixed: Fixed import of checkboxes in ENEX files (#3402)</li>
<li>Fixed: Fixed various bugs related to the import of ENEX files as HTML</li>
<li>Fixed: Only de-duplicate imported notebook titles when needed (#2331)</li>
<li>Fixed: Prevent desktop.ini file from breaking sync lock (#3381)</li>
<li>Fixed: Prevent notebook to be the parent of itself (#3334)</li>
<li>Fixed: Sync would fail in some cases due to a database error (#3234)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.164">cli-v1.0.164</a> - 2020-05-13T15:30:22Z<a name="cli-v1-0-164-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-164-2020-05-13t15-30-22z" href="#cli-v1-0-164-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-164-2020-05-13t15-30-22z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added support for basic search</li>
<li>Improved: Improve automatic title generation (#2955) (#2915 by anirudh murali)</li>
<li>Improved: Improve handling of encrypted items</li>
<li>Improved: Made layout configurable (#3069 by <a href="https://github.com/jyuvaraj03">@jyuvaraj03</a>)</li>
<li>Improved: Start resource fetcher service when a note has been decrypted</li>
<li>Fixed: Better handling of missing table field bug on Linux (#3088)</li>
<li>Fixed: Fix format of geolocation data (#2673 by <a href="https://github.com/mic704b">@mic704b</a>)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.163">cli-v1.0.163</a> - 2020-04-10T18:31:50Z<a name="cli-v1-0-163-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-163-2020-04-10t18-31-50z" href="#cli-v1-0-163-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-163-2020-04-10t18-31-50z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Update ko.po (#2986 by <a href="https://github.com/xmlangel">@xmlangel</a>)</li>
<li>Improved: Update it_IT.po (#2978 by <a href="https://github.com/abonte">@abonte</a>)</li>
<li>Improved: Update nb_NO.po (#2973 by Mats Estensen)</li>
<li>Improved: Update zh_CN.po (#2971 by <a href="https://github.com/troilus">@troilus</a>)</li>
<li>Fixed: Add support for retrying decryption after it has failed multiple times (#2981)</li>
<li>Fixed: When modifying a conflicted note, it would disappear from the view (#2709)</li>
<li>Fixed: Prevent decryption loop when a resource cannot be decrypted (#2257)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.162">cli-v1.0.162</a> - 2020-04-01T17:16:14Z<a name="cli-v1-0-162-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-162-2020-04-01t17-16-14z" href="#cli-v1-0-162-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-162-2020-04-01t17-16-14z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Compatibility with new master key and sync target encryption</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.161">cli-v1.0.161</a> - 2020-03-07T01:20:04Z<a name="cli-v1-0-161-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-161-2020-03-07t01-20-04z" href="#cli-v1-0-161-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-161-2020-03-07t01-20-04z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add more context to encryption errors</li>
<li>Improved: Changed default encryption method to CCM</li>
<li>Improved: Change geolocation service to freegeoip.app to improve privacy (#2503 by Helmut K. C. Tessarek)</li>
<li>Fixed: Handle invalid UTF-8 data when encrypting (#2591)</li>
<li>Fixed: Fixed issue when a notebook does not have a parent (#2536)</li>
<li>Fixed: Better handling of rare error in WebDAV server (#2485)</li>
<li>Fixed: Fix importing of very large attachments (150MB+) from Evernote ENEX files</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.154">cli-v1.0.154</a> - 2020-02-07T23:22:24Z<a name="cli-v1-0-154-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-154-2020-02-07t23-22-24z" href="#cli-v1-0-154-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-154-2020-02-07t23-22-24z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added new date format YYYY.MM.DD (#2318 by XSAkos)</li>
<li>Improved: Reset time fields when duplicating a note (#2428 by <a href="https://github.com/tekdel">@tekdel</a>)</li>
<li>Improved: More info for &quot;unknown profile version&quot; error message (#2361 by <a href="https://github.com/mic704b">@mic704b</a>)</li>
<li>Improved: Handle Thai language in search (#2387) (#2279 by Kirtan Purohit)</li>
<li>Fixed: Fix escaping of title when generating a markdown link (#2456) (#2085 by Helmut K. C. Tessarek)</li>
<li>Fixed: Fix console messages being displayed in GUI (#2457 by Helmut K. C. Tessarek)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.153">cli-v1.0.153</a> - 2020-01-24T23:16:32Z<a name="cli-v1-0-153-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-153-2020-01-24t23-16-32z" href="#cli-v1-0-153-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-153-2020-01-24t23-16-32z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added new, more secure encryption methods, so that they can be switched to at a later time</li>
<li>New: Add --export, --import, and --import-file flags to joplin config (#2179 by Marcus Hill)</li>
<li>New: Added more logging for resource fetching to try to debug issue</li>
<li>New: Add warning message when user tries to upload a file 10MB or larger (#2102) (#2097 by Marcus Hill)</li>
<li>Improved: Replace note links with relative paths in MD Exporter (#2161 by Vaidotas Simkus)</li>
<li>Improved: Upgrade sqlite (#2248 by Devon Zuegel)</li>
<li>Improved: Extract note renderer to separate package (WIP) (#2206 by Laurent Cozic)</li>
<li>Improved: Better handling of resource download errors, and added resource info to sync status screen</li>
<li>Improved: Update Node dependency to 10+ (#2177 by <a href="https://github.com/joeltaylor">@joeltaylor</a>)</li>
<li>Improved: Allow exporting a note as HTML</li>
<li>Improved: Improved logging during sync to allow finding bugs more easily</li>
<li>Fixed: Handle WebDAV servers that do not return a last modified date (fixes <a href="http://mail.ru">mail.ru</a>) (#2091)</li>
<li>Fixed: Restaured translations that had been accidentally deleted (#2126)</li>
<li>Fixed: Prevent synch from happening if target dir could not be created, in local sync (#2117)</li>
<li>Fixed: Handle rare case when notebook has a parent that no longer exists, which causes a crash when sorting (#2088)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.150">cli-v1.0.150</a> - 2019-11-11T19:19:03Z<a name="cli-v1-0-150-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-150-2019-11-11t19-19-03z" href="#cli-v1-0-150-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-150-2019-11-11t19-19-03z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add command to list all tags for a note (#2003) (#1974)</li>
<li>New: Added concept of sync version and client ID to allow upgrading sync targets</li>
<li>Improved: Set user-agent header to Joplin/1.0 (#2064) (#2042)</li>
<li>Improved: Update sharp tp v0.23.2 (for node 13 compatibility) (#2063)</li>
<li>Improved: Handle special shortcuts such as Ctrl+H</li>
<li>Improved: Handle WebDAV server with empty XML namespaces (#2002)</li>
<li>Improved: Allow apps to work with read-only profile</li>
<li>Improved: Support italic in span tags (#1966)</li>
<li>Improved: Allow setting user timestamps with &quot;set&quot; command</li>
<li>Improved: Allow a sync client to lock a sync target, so that migration operations can be performed on it</li>
<li>Improved: Give correct mime type to more file types</li>
<li>Improved: Use profile temp dir when exporting files (#1932)</li>
<li>Improved: Confirm encryption password (#1937)</li>
<li>Fixed: Handle paths with spaces for text editor (#2039)</li>
<li>Fixed: Apply default style to notes in HTML format (#1960)</li>
<li>Fixed: Fixed translation of &quot;Synchronisation Status&quot; (#1906)</li>
<li>Fixed: App would crash if trying to index a note that has not been decrypted yet (#1938)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.149">cli-v1.0.149</a> - 2019-09-27T21:18:57Z<a name="cli-v1-0-149-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-149-2019-09-27t21-18-57z" href="#cli-v1-0-149-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-149-2019-09-27t21-18-57z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support to Termux by returning a default when platform name cannot be determined (#1905)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.148">cli-v1.0.148</a> - 2019-09-27T18:42:36Z<a name="cli-v1-0-148-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-148-2019-09-27t18-42-36z" href="#cli-v1-0-148-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-148-2019-09-27t18-42-36z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improves deletion fail-safe so it is based on percentage of notes deleted. And display warning on sidebar.</li>
<li>Improved: Log last requests in case of a sync error</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.147">cli-v1.0.147</a> - 2019-09-25T21:26:24Z<a name="cli-v1-0-147-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-147-2019-09-25t21-26-24z" href="#cli-v1-0-147-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-147-2019-09-25t21-26-24z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Import Evernote notes as HTML (#1887)</li>
<li>New: Added fail-safe to prevent data from being wiped out when the sync target is empty</li>
<li>Improved: Also allow importing TXT files with markdown</li>
<li>Improved: Upgrade joplin-turndown-plugin-gfm to fix import of certain Enex tables</li>
<li>Fixed: Fixed import of notes that contain links with hashes</li>
<li>Fixed: Fixed link issue following last update</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.146">cli-v1.0.146</a> - 2019-09-08T19:12:41Z<a name="cli-v1-0-146-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-146-2019-09-08t19-12-41z" href="#cli-v1-0-146-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-146-2019-09-08t19-12-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed regression that was making installation fail</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.145">cli-v1.0.145</a> - 2019-09-08T16:23:02Z<a name="cli-v1-0-145-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-145-2019-09-08t16-23-02z" href="#cli-v1-0-145-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-145-2019-09-08t16-23-02z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added headless server command (Beta) (#1860)</li>
<li>Improved: Improved bold formatting support in Enex import (#1708)</li>
<li>Improved: Make translation files smaller by not including untranslated strings. Also add percentage translated to config screen. (#1459)</li>
<li>Fixed: Make sure setting side-effects are applied even when running in command line mode (#1779)</li>
<li>Fixed: Fix typo on encryption options screen (#1823)</li>
<li>Fixed: Fixes fatal error with cli 1.0.141 on start (#1791)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.137">cli-v1.0.137</a> - 2019-05-19T11:04:28Z<a name="cli-v1-0-137-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-137-2019-05-19t11-04-28z" href="#cli-v1-0-137-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-137-2019-05-19t11-04-28z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed method to autosize resource</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.136">cli-v1.0.136</a> - 2019-05-19T10:19:22Z<a name="cli-v1-0-136-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-136-2019-05-19t10-19-22z" href="#cli-v1-0-136-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-136-2019-05-19t10-19-22z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Put back &quot;Fetched items&quot; message during sync</li>
<li>Fixed: Handle missing resource blob when setting resource size</li>
<li>Fixed: Prevent app from trying to upload resource it has not downloaded yet</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.135">cli-v1.0.135</a> - 2019-05-13T22:59:14Z<a name="cli-v1-0-135-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-135-2019-05-13t22-59-14z" href="#cli-v1-0-135-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-135-2019-05-13t22-59-14z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added option to disable creation of welcome items</li>
<li>New: Support for note history (#1415) (#712)</li>
<li>Improved: Save size of a resource to the database; and added mechanism to run non-database migrations</li>
<li>Improved: Display better error message when trying to sync with a new sync target from an old version of Joplin</li>
<li>Improved: Update sharp (for node 12 compatibility) (#1471)</li>
<li>Fixed: Do not resize images if they are already below the max dimensions</li>
<li>Fixed: Allow resources greater than 10 MB but they won't be synced on mobile (#371)</li>
<li>Fixed: Bump sqlite3 to v4.0.7 for node12 support (#1508)</li>
<li>Fixed: Prevents notes with no title to break after synchronize (#1472)</li>
<li>Fixed: Import lists and sub-lists from Enex files with correct indentation (#1476)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/cli-v1.0.125">cli-v1.0.125</a> - 2019-04-29T18:38:05Z<a name="cli-v1-0-125-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-125-2019-04-29t18-38-05z" href="#cli-v1-0-125-https-github-com-laurent22-joplin-releases-tag-cli-v1-0-125-2019-04-29t18-38-05z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved support for Japanese, Chinese, Korean search queries (also applies to Goto Anything)</li>
<li>Improved: Display warning when changing dir for filesystem sync</li>
<li>Fixed: Remove message &quot;Processing a path that has already been done&quot; as this is not an error (#1353)</li>
<li>Fixed: Some resources could incorrectly be deleted even though they are still present in a note. Also added additional verifications before deleting a resource. (#1433)</li>
<li>Fixed: Handle invalid resource tags that contain no data when importing ENEX (#1405)</li>
<li>Fixed: Restored inline code styling (#1326)</li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/changelog_cli.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,373 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/changelog_ios.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/changelog_ios.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Joplin iOS app changelog | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-changelog_ios">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Joplin iOS app changelog<a name="joplin-ios-app-changelog" href="#joplin-ios-app-changelog" class="heading-anchor">🔗</a></h1>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/ios-v12.6.2">ios-v12.6.2</a> - 2021-12-17T09:59:16Z<a name="ios-v12-6-2-https-github-com-laurent22-joplin-releases-tag-ios-v12-6-2-2021-12-17t09-59-16z" href="#ios-v12-6-2-https-github-com-laurent22-joplin-releases-tag-ios-v12-6-2-2021-12-17t09-59-16z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add date format YYYY/MM/DD (#5759 by Helmut K. C. Tessarek)</li>
<li>New: Add support for faster built-in sync locks (#5662)</li>
<li>New: Add support for sharing notes when E2EE is enabled (#5529)</li>
<li>New: Added support for notebook icons (e97bb78)</li>
<li>Improved: Also duplicate resources when duplicating a note (c0a8c33)</li>
<li>Improved: Improved S3 sync error handling and reliability, and upgraded S3 SDK (#5312 by Lee Matos)</li>
<li>Improved: Improved error message when synchronising with Joplin Server (#5754)</li>
<li>Improved: Ping <a href="http://joplinapp.org">joplinapp.org</a> domain instead of Google when doing the WiFi connection check (#5705)</li>
<li>Improved: Set min supported iOS version to 13.0 (298e85f)</li>
<li>Improved: Update Mermaid: 8.12.1 -&gt; 8.13.5 (#5831 by Helmut K. C. Tessarek)</li>
<li>Improved: Upgraded React Native from 0.64 to 0.66 (66e79cc)</li>
<li>Fixed: Alarm setting buttons were no longer visible (#5777)</li>
<li>Fixed: Fixed &quot;Invalid lock client type&quot; error when migrating sync target (e0e93c4)</li>
<li>Fixed: Fixed iOS 12 crash that prevents the app from starting (#5671)</li>
<li>Fixed: Fixed issue that could cause application to needlessly lock the sync target (0de6e9e)</li>
<li>Fixed: Fixed issue with parts of HTML notes not being displayed in some cases (#5687)</li>
<li>Fixed: Handle duplicate attachments when the parent notebook is shared (#5796)</li>
<li>Fixed: Links in flowchart Mermaid diagrams (#5830) (#5801 by Helmut K. C. Tessarek)</li>
<li>Fixed: Sharing multiple notebooks via Joplin Server with the same user results in an error (#5721)</li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/changelog_ios.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,724 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/changelog_server.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/changelog_server.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Joplin Server Changelog | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-changelog_server">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Joplin Server Changelog<a name="joplin-server-changelog" href="#joplin-server-changelog" class="heading-anchor">🔗</a></h1>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.14">server-v2.6.14</a> - 2021-12-02T16:29:54Z<a name="server-v2-6-14-https-github-com-laurent22-joplin-releases-tag-server-v2-6-14-2021-12-02t16-29-54z" href="#server-v2-6-14-https-github-com-laurent22-joplin-releases-tag-server-v2-6-14-2021-12-02t16-29-54z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved storage command (122afd6)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.13">server-v2.6.13</a> - 2021-11-29T18:41:28Z<a name="server-v2-6-13-https-github-com-laurent22-joplin-releases-tag-server-v2-6-13-2021-11-29t18-41-28z" href="#server-v2-6-13-https-github-com-laurent22-joplin-releases-tag-server-v2-6-13-2021-11-29t18-41-28z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added command to delete database item content (01048f5)</li>
<li>Improved: Allow disabling NTP time drift check (dc67eac)</li>
<li>Improved: Do not set the SMTP auth option when user or password are not set (#5791 by <a href="https://github.com/MovingEarth">@MovingEarth</a>)</li>
<li>Improved: Increase default MAX_TIME_DRIFT to 100ms (8e54a65)</li>
<li>Improved: Optimise reading from external storage when fallback driver is not present (4fecb08)</li>
<li>Improved: Remove unique constraint errors from the log when they are already handled by the application (a6884a2)</li>
<li>Improved: Retry NTP request up to three times when it fails (7eb1d89)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.12">server-v2.6.12</a> - 2021-11-23T16:30:27Z<a name="server-v2-6-12-https-github-com-laurent22-joplin-releases-tag-server-v2-6-12-2021-11-23t16-30-27z" href="#server-v2-6-12-https-github-com-laurent22-joplin-releases-tag-server-v2-6-12-2021-11-23t16-30-27z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added task to compress changes older than 6 months (75f7296)</li>
<li>Improved: Allow specifying a max content size when importing content to new storage (080c3cc)</li>
<li>Improved: Check for time drift when the server starts (#5738)</li>
<li>Improved: Display more debug info in error log (3716972)</li>
<li>Improved: Display more detailed error messages on SQL query errors (42a4edb)</li>
<li>Improved: Perform storage checks before starting services (16d5047)</li>
<li>Fixed: Fixed HandleOversizedAccounts task interval (fc419d9)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.11">server-v2.6.11</a> - 2021-11-14T17:14:51Z<a name="server-v2-6-11-https-github-com-laurent22-joplin-releases-tag-server-v2-6-11-2021-11-14t17-14-51z" href="#server-v2-6-11-https-github-com-laurent22-joplin-releases-tag-server-v2-6-11-2021-11-14t17-14-51z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Prevent large data blobs from crashing the application (5eb3a92)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.10">server-v2.6.10</a> - 2021-11-13T12:47:53Z<a name="server-v2-6-10-https-github-com-laurent22-joplin-releases-tag-server-v2-6-10-2021-11-13t12-47-53z" href="#server-v2-6-10-https-github-com-laurent22-joplin-releases-tag-server-v2-6-10-2021-11-13t12-47-53z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved storage migration error handling, and improved storage test units (5a41d80)</li>
<li>Improved: Rename &quot;ReadOnly&quot; mode to &quot;ReadAndClear&quot; to avoid any confusion (5cd4537)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.9">server-v2.6.9</a> - 2021-11-11T16:38:00Z<a name="server-v2-6-9-https-github-com-laurent22-joplin-releases-tag-server-v2-6-9-2021-11-11t16-38-00z" href="#server-v2-6-9-https-github-com-laurent22-joplin-releases-tag-server-v2-6-9-2021-11-11t16-38-00z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Hide more credentials from the log (73137cf)</li>
<li>New: Added command to test a storage connection (c6dec0a)</li>
<li>New: Added command to migrate content to different storage (005f720)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.5">server-v2.6.5</a> - 2021-11-10T12:07:50Z<a name="server-v2-6-5-https-github-com-laurent22-joplin-releases-tag-server-v2-6-5-2021-11-10t12-07-50z" href="#server-v2-6-5-https-github-com-laurent22-joplin-releases-tag-server-v2-6-5-2021-11-10t12-07-50z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow storing item content in database, filesystem or S3 (depending on config) (#5602)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.3">server-v2.6.3</a> - 2021-11-08T15:20:41Z<a name="server-v2-6-3-https-github-com-laurent22-joplin-releases-tag-server-v2-6-3-2021-11-08t15-20-41z" href="#server-v2-6-3-https-github-com-laurent22-joplin-releases-tag-server-v2-6-3-2021-11-08t15-20-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for sharing notes when E2EE is enabled (#5529)</li>
<li>Improved: Disable mailer service if no-reply email is not set (ce5c5d6)</li>
<li>Improved: Display latest migration name after auto-migration (7ad73df)</li>
<li>Improved: Immediately ask user to set password after Stripe checkout (9e1cb9d)</li>
<li>Improved: Set resource content size when viewing published note (70d5c7a)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.6.2">server-v2.6.2</a> - 2021-11-03T12:54:38Z<a name="server-v2-6-2-https-github-com-laurent22-joplin-releases-tag-server-v2-6-2-2021-11-03t12-54-38z" href="#server-v2-6-2-https-github-com-laurent22-joplin-releases-tag-server-v2-6-2-2021-11-03t12-54-38z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for faster built-in sync locks (#5662)</li>
<li>Improved: Improved env variable handling to make it self documenting and enforce type checking (b5d792c)</li>
<li>Improved: Improved logging and rendering of low level middleware errors (3704413)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.10">server-v2.5.10</a> - 2021-11-02T14:45:54Z<a name="server-v2-5-10-https-github-com-laurent22-joplin-releases-tag-server-v2-5-10-2021-11-02t14-45-54z" href="#server-v2-5-10-https-github-com-laurent22-joplin-releases-tag-server-v2-5-10-2021-11-02t14-45-54z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add unique constraint on name and owner ID of items table (f7a18ba)</li>
<li>Fixed: Fixed issue that could cause server to return empty items in some rare cases (99ea4b7)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.9">server-v2.5.9</a> - 2021-10-28T19:43:41Z<a name="server-v2-5-9-https-github-com-laurent22-joplin-releases-tag-server-v2-5-9-2021-10-28t19-43-41z" href="#server-v2-5-9-https-github-com-laurent22-joplin-releases-tag-server-v2-5-9-2021-10-28t19-43-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Remove session expiration for now (4a2af32)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.8">server-v2.5.8</a> - 2021-10-28T16:07:23Z<a name="server-v2-5-8-https-github-com-laurent22-joplin-releases-tag-server-v2-5-8-2021-10-28t16-07-23z" href="#server-v2-5-8-https-github-com-laurent22-joplin-releases-tag-server-v2-5-8-2021-10-28t16-07-23z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added item owner ID, and allow disabling db auto-migrations (b655f27)</li>
<li>Fixed: Fixed Stripe portal page redirection (9ba90b5)</li>
<li>Fixed: Fixed items.owner_id migration (a753429)</li>
<li>Fixed: Fixed display of latest migration in startup log (#5627 by <a href="https://github.com/KowalskiPiotr98">@KowalskiPiotr98</a>)</li>
<li>Improved: Moved CLI commands to separate files (dca13b3)</li>
<li>Improved: Delete all sessions when a password is changed or reset (b497177)</li>
<li>Improved: Expire sessions after 12 hours (0ada1df)</li>
<li>Improved: Improved task service log entries (bc5a853)</li>
<li>Improved: Run oversized account task more frequently (2f09f88)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.5">server-v2.5.5</a> - 2021-10-23T20:58:37Z<a name="server-v2-5-5-https-github-com-laurent22-joplin-releases-tag-server-v2-5-5-2021-10-23t20-58-37z" href="#server-v2-5-5-https-github-com-laurent22-joplin-releases-tag-server-v2-5-5-2021-10-23t20-58-37z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added tool to delete old changes (169b585)</li>
<li>Fixed: Fixed issue when a notebook is shared, then unshared, then shared again (47fc51e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.2">server-v2.5.2</a> - 2021-10-07T13:36:27Z<a name="server-v2-5-2-https-github-com-laurent22-joplin-releases-tag-server-v2-5-2-2021-10-07t13-36-27z" href="#server-v2-5-2-https-github-com-laurent22-joplin-releases-tag-server-v2-5-2-2021-10-07t13-36-27z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for promotion codes (5b58811)</li>
<li>Improved: Sort flags by date (31efc9b)</li>
<li>Fixed: Fixed links in published notes (#5507)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.5.1">server-v2.5.1</a> - 2021-09-29T15:52:34Z<a name="server-v2-5-1-https-github-com-laurent22-joplin-releases-tag-server-v2-5-1-2021-09-29t15-52-34z" href="#server-v2-5-1-https-github-com-laurent22-joplin-releases-tag-server-v2-5-1-2021-09-29t15-52-34z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for events and use them to track background tasks (79d1ad7)</li>
<li>Improved: Allow manually deleting a user flag (3a11885)</li>
<li>Improved: Also clear admin session ID on logout after impersonating a user (24945a0)</li>
<li>Improved: Correctly attach Stripe sub to Joplin Server sub when it is recreated from Stripe (5da820a)</li>
<li>Improved: Display banner when an account is disabled and provide reason (8c9331c)</li>
<li>Improved: Only disable API access when an account is disabled (6fec2a9)</li>
<li>Improved: Remove AccountOverLimit flag from accounts that are now below the limit (5de5370)</li>
<li>Improved: Send reminder email every time a payment fails (2dd8045)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.11-beta">server-v2.4.11-beta</a> - 2021-09-26T17:10:57Z<a name="server-v2-4-11-beta-https-github-com-laurent22-joplin-releases-tag-server-v2-4-11-beta-2021-09-26t17-10-57z" href="#server-v2-4-11-beta-https-github-com-laurent22-joplin-releases-tag-server-v2-4-11-beta-2021-09-26t17-10-57z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Do not allow accepting share more than once (57a1d03)</li>
<li>Fixed: Fixed Stripe checkout when a coupon is used (c45f961)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.10-beta">server-v2.4.10-beta</a> (Pre-release) - 2021-09-25T19:07:05Z<a name="server-v2-4-10-beta-https-github-com-laurent22-joplin-releases-tag-server-v2-4-10-beta-pre-release-2021-09-25t19-07-05z" href="#server-v2-4-10-beta-https-github-com-laurent22-joplin-releases-tag-server-v2-4-10-beta-pre-release-2021-09-25t19-07-05z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved share service reliability and optimised performance (0175348)</li>
<li>Security: Implement clickjacking defense (e3fd34e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.9-beta">server-v2.4.9</a> - 2021-09-22T16:31:23Z<a name="server-v2-4-9-https-github-com-laurent22-joplin-releases-tag-server-v2-4-9-beta-2021-09-22t16-31-23z" href="#server-v2-4-9-https-github-com-laurent22-joplin-releases-tag-server-v2-4-9-beta-2021-09-22t16-31-23z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for changing user own email (63e88c0)</li>
<li>Improved: Allow an admin to impersonate a user (03b4b6e)</li>
<li>Improved: Allow entering coupon code on Stripe checkout page (4577c9c)</li>
<li>Improved: Clear cookie when account has been deleted to allow viewing login page again (061761f)</li>
<li>Improved: Exclude certain queries from slow log (4e70ca6)</li>
<li>Improved: Handle Joplin Cloud failed subscription payments (a6b1cff)</li>
<li>Improved: Improved support for background tasks and added admin UI to view them (cd877f6)</li>
<li>Improved: Improved user list page (4d38397)</li>
<li>Improved: Link to Joplin Cloud signup page on login page (d850eed)</li>
<li>Improved: Manage subscription entirely from Stripe (7fac194)</li>
<li>Improved: Redirect to user page after changing a user (c91d4bd)</li>
<li>Improved: Rename admin button &quot;Send reset password email&quot; to more correct &quot;Send account information email&quot; (37d446b)</li>
<li>Improved: Sync deleted items first to allow fixing oversized accounts (43c594b)</li>
<li>Fixed: Fixed calculating total item size after an item has been deleted (024967c)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.8-beta">server-v2.4.8</a> - 2021-09-15T22:16:59Z<a name="server-v2-4-8-https-github-com-laurent22-joplin-releases-tag-server-v2-4-8-beta-2021-09-15t22-16-59z" href="#server-v2-4-8-https-github-com-laurent22-joplin-releases-tag-server-v2-4-8-beta-2021-09-15t22-16-59z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added support for app level slow SQL query log (5e8b742)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.7-beta">server-v2.4.7</a> - 2021-09-15T15:58:46Z<a name="server-v2-4-7-https-github-com-laurent22-joplin-releases-tag-server-v2-4-7-beta-2021-09-15t15-58-46z" href="#server-v2-4-7-https-github-com-laurent22-joplin-releases-tag-server-v2-4-7-beta-2021-09-15t15-58-46z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improve flag logic (c229821)</li>
<li>Fixed: Fixed handling of brute force limiter by getting correct user IP (3ce947e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.6-beta">server-v2.4.6</a> - 2021-09-14T15:02:21Z<a name="server-v2-4-6-https-github-com-laurent22-joplin-releases-tag-server-v2-4-6-beta-2021-09-14t15-02-21z" href="#server-v2-4-6-https-github-com-laurent22-joplin-releases-tag-server-v2-4-6-beta-2021-09-14t15-02-21z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add link to Stripe subscription page to manage payment details (4e7fe66)</li>
<li>New: Add transaction info to debug deadlock issues (01b653f)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.3-beta">server-v2.4.3</a> - 2021-09-02T17:49:11Z<a name="server-v2-4-3-https-github-com-laurent22-joplin-releases-tag-server-v2-4-3-beta-2021-09-02t17-49-11z" href="#server-v2-4-3-https-github-com-laurent22-joplin-releases-tag-server-v2-4-3-beta-2021-09-02t17-49-11z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added Help page for Joplin Cloud (6520a48)</li>
<li>New: Added icon next to profile button (5805a41)</li>
<li>Improved: Display note title as page title when sharing note (82331c9)</li>
<li>Fixed: Fixed calculation of max sizes for Postgres (93a4ad0)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.4.2">server-v2.4.2</a> - 2021-08-28T17:45:41Z<a name="server-v2-4-2-https-github-com-laurent22-joplin-releases-tag-server-v2-4-2-2021-08-28t17-45-41z" href="#server-v2-4-2-https-github-com-laurent22-joplin-releases-tag-server-v2-4-2-2021-08-28t17-45-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add request rate limter on session and login end points (543413d)</li>
<li>New: Add support for user flags (82b157b)</li>
<li>New: Added commands to control db migrations - list, down, up (2c79ce2)</li>
<li>Improved: Display user flags in profile when logged in as admin (4394329)</li>
<li>Improved: Handle flags for accounts over limit (6e087bc)</li>
<li>Improved: Increase cookies security - set HttpOnly, Secure and SameSite flags (bcadb36)</li>
<li>Improved: No longer install vim into the image (#5337 by <a href="https://github.com/piotrb">@piotrb</a>)</li>
<li>Improved: Re-enable account when new subscription is associated with it (ac82e4b)</li>
<li>Improved: Switch to node:16-bullseye base image (#5202 by <a href="https://github.com/piotrb">@piotrb</a>)</li>
<li>Fixed: Prevent crash when returning too many rows using SQLite (1efe3d3)</li>
<li>Fixed: Filenames with non-ascii characters could not be downloaded from published note (#5328)</li>
<li>Fixed: Fix missing CSS file error (#5309 by <a href="https://github.com/whalehub">@whalehub</a>)</li>
<li>Fixed: Fixed second duration (c7421df)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.3.7-beta">server-v2.3.7</a> - 2021-08-13T21:20:17Z<a name="server-v2-3-7-https-github-com-laurent22-joplin-releases-tag-server-v2-3-7-beta-2021-08-13t21-20-17z" href="#server-v2-3-7-https-github-com-laurent22-joplin-releases-tag-server-v2-3-7-beta-2021-08-13t21-20-17z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fix migrations (a9961ae)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.3.6-beta">server-v2.3.6</a> - 2021-08-13T20:59:41Z<a name="server-v2-3-6-https-github-com-laurent22-joplin-releases-tag-server-v2-3-6-beta-2021-08-13t20-59-41z" href="#server-v2-3-6-https-github-com-laurent22-joplin-releases-tag-server-v2-3-6-beta-2021-08-13t20-59-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fix migrations (f518549)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.3.5-beta">server-v2.3.5</a> - 2021-08-13T18:01:20Z<a name="server-v2-3-5-https-github-com-laurent22-joplin-releases-tag-server-v2-3-5-beta-2021-08-13t18-01-20z" href="#server-v2-3-5-https-github-com-laurent22-joplin-releases-tag-server-v2-3-5-beta-2021-08-13t18-01-20z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed pagination link styling (d42d181)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.3.4-beta">server-v2.3.4</a> - 2021-08-13T16:56:17Z<a name="server-v2-3-4-https-github-com-laurent22-joplin-releases-tag-server-v2-3-4-beta-2021-08-13t16-56-17z" href="#server-v2-3-4-https-github-com-laurent22-joplin-releases-tag-server-v2-3-4-beta-2021-08-13t16-56-17z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow setting email key to prevent the same email to be sent multiple times (391204c)</li>
<li>Improved: Clarify beta transition message (c4fcfec)</li>
<li>Improved: Disable upload for accounts with subscription failed payments (f14c74d)</li>
<li>Improved: Re-enable account when subscription is paid (4b5318c)</li>
<li>Improved: Set better filename and mime type for files downloaded via published notes (#5286)</li>
<li>Fixed: Fixed publishing of notes with HTML markup type (97726b0)</li>
<li>Fixed: Fix regression (6359c9c)</li>
<li>Fixed: Fixed layout of notes on mobile devices (#5269)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.11-beta">server-v2.2.11</a> - 2021-08-03T18:48:00Z<a name="server-v2-2-11-https-github-com-laurent22-joplin-releases-tag-server-v2-2-11-beta-2021-08-03t18-48-00z" href="#server-v2-2-11-https-github-com-laurent22-joplin-releases-tag-server-v2-2-11-beta-2021-08-03t18-48-00z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Disable beta account once expired (785248b)</li>
<li>Improved: Handle beta user upgrade (8910c87)</li>
<li>Improved: Prevent duplicate Stripe subscriptions and improved Stripe workflow testing (6ac22ed)</li>
<li>Fixed: Fixed support emails (724aa72)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.10">server-v2.2.10</a> - 2021-08-01T10:04:53Z<a name="server-v2-2-10-https-github-com-laurent22-joplin-releases-tag-server-v2-2-10-2021-08-01t10-04-53z" href="#server-v2-2-10-https-github-com-laurent22-joplin-releases-tag-server-v2-2-10-2021-08-01t10-04-53z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allows providing a coupon when creating the Stripe checkout session (b5b6111)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.9-beta">server-v2.2.9</a> - 2021-07-31T13:52:53Z<a name="server-v2-2-9-https-github-com-laurent22-joplin-releases-tag-server-v2-2-9-beta-2021-07-31t13-52-53z" href="#server-v2-2-9-https-github-com-laurent22-joplin-releases-tag-server-v2-2-9-beta-2021-07-31t13-52-53z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add Docker major, minor and beta version tags (#5237 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>New: Add support for Stripe yearly subscriptions (f2547fe)</li>
<li>Improved: Improve installation instructions (53b4d7a)</li>
<li>Fixed: Fixed certain URLs (282f782)</li>
<li>Fixed: Published notes that contain non-alphabetical characters could end up being truncated (#5229)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.8-beta">server-v2.2.8</a> - 2021-07-24T16:55:58Z<a name="server-v2-2-8-https-github-com-laurent22-joplin-releases-tag-server-v2-2-8-beta-2021-07-24t16-55-58z" href="#server-v2-2-8-https-github-com-laurent22-joplin-releases-tag-server-v2-2-8-beta-2021-07-24t16-55-58z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added form tokens to prevent CSRF attacks (CVE-2021-23431) (19b45de)</li>
<li>Improved: Allow admin to change Stripe subscription (75a421e)</li>
<li>Improved: Allow enabling or disabling a user. Handle cancelling subscription. (27c3cbd)</li>
<li>Improved: Allow user to upgrade account (e83ab93)</li>
<li>Improved: Allow users to cancel Stripe subscription (b7e9848)</li>
<li>Improved: Clarify error message when user info cannot be saved (4567b78)</li>
<li>Improved: Explain how to use Joplin Server with a Joplin app (3f993af)</li>
<li>Improved: Handle Stripe webhook receiving multiple times the same event (252d069)</li>
<li>Improved: Make sure email URLs are displayed as clickable links (7245aea)</li>
<li>Improved: Moved email templates to separate files (6a93cb2)</li>
<li>Improved: Set default of env SUPPORT_EMAIL to &quot;SUPPORT_EMAIL&quot; to make it clear it needs to be set (92520e5)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.7-beta">server-v2.2.7</a> - 2021-07-11T17:31:42Z<a name="server-v2-2-7-https-github-com-laurent22-joplin-releases-tag-server-v2-2-7-beta-2021-07-11t17-31-42z" href="#server-v2-2-7-https-github-com-laurent22-joplin-releases-tag-server-v2-2-7-beta-2021-07-11t17-31-42z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added support for resetting user password (62b6198)</li>
<li>Improved: Check password complexity (240cb35)</li>
<li>Improved: Disallow changing email address until a secure solution to change it is implemented (f8d2c26)</li>
<li>Fixed: Fixed mail queue as some emails were not being processed (89f4ca1)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.6-beta">server-v2.2.6</a> - 2021-07-09T15:57:47Z<a name="server-v2-2-6-https-github-com-laurent22-joplin-releases-tag-server-v2-2-6-beta-2021-07-09t15-57-47z" href="#server-v2-2-6-https-github-com-laurent22-joplin-releases-tag-server-v2-2-6-beta-2021-07-09t15-57-47z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add Docker image labels (#5158 by <a href="https://github.com/JackGruber">@JackGruber</a>)</li>
<li>Fixed: Fixed change processing logic (5a27d4d)</li>
<li>Fixed: Fixed styling of shared note (6c1a6b0)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.5-beta">server-v2.2.5</a> - 2021-07-03T21:40:37Z<a name="server-v2-2-5-https-github-com-laurent22-joplin-releases-tag-server-v2-2-5-beta-2021-07-03t21-40-37z" href="#server-v2-2-5-https-github-com-laurent22-joplin-releases-tag-server-v2-2-5-beta-2021-07-03t21-40-37z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Make app context immutable and derive the per-request context properties from it (e210926)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.4-beta">server-v2.2.4</a> - 2021-07-03T21:10:29Z<a name="server-v2-2-4-https-github-com-laurent22-joplin-releases-tag-server-v2-2-4-beta-2021-07-03t21-10-29z" href="#server-v2-2-4-https-github-com-laurent22-joplin-releases-tag-server-v2-2-4-beta-2021-07-03t21-10-29z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed issue with user sessions being mixed up (238cc86)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.3-beta">server-v2.2.3</a> - 2021-07-03T19:38:36Z<a name="server-v2-2-3-https-github-com-laurent22-joplin-releases-tag-server-v2-2-3-beta-2021-07-03t19-38-36z" href="#server-v2-2-3-https-github-com-laurent22-joplin-releases-tag-server-v2-2-3-beta-2021-07-03t19-38-36z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed size of a database field (264f36f)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.2-beta">server-v2.2.2</a> - 2021-07-03T18:28:35Z<a name="server-v2-2-2-https-github-com-laurent22-joplin-releases-tag-server-v2-2-2-beta-2021-07-03t18-28-35z" href="#server-v2-2-2-https-github-com-laurent22-joplin-releases-tag-server-v2-2-2-beta-2021-07-03t18-28-35z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Improved logging and reliability of cron tasks (d99c34f)</li>
<li>Improved: Only emit &quot;created&quot; event when new user is saved (8883df2)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.2.1-beta">server-v2.2.1</a> - 2021-07-03T15:41:32Z<a name="server-v2-2-1-https-github-com-laurent22-joplin-releases-tag-server-v2-2-1-beta-2021-07-03t15-41-32z" href="#server-v2-2-1-https-github-com-laurent22-joplin-releases-tag-server-v2-2-1-beta-2021-07-03t15-41-32z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for account max total size (b507fbf)</li>
<li>Improved: Display max size info in dashboard (3d18514)</li>
<li>Improved: Hide &quot;Is Admin&quot; from dashboard (7447793)</li>
<li>Improved: Moved Joplin-specific context properties under its own namespace (bfa7ea7)</li>
<li>Improved: Normalize email addresses before saving them (427218b)</li>
<li>Improved: Remove dangerous &quot;Delete all&quot; button for now (125af75)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.1.6-beta">server-v2.1.6</a> - 2021-06-24T10:01:46Z<a name="server-v2-1-6-https-github-com-laurent22-joplin-releases-tag-server-v2-1-6-beta-2021-06-24t10-01-46z" href="#server-v2-1-6-https-github-com-laurent22-joplin-releases-tag-server-v2-1-6-beta-2021-06-24t10-01-46z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed accessing main website (Regression) (f868797)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.1.5-beta">server-v2.1.5</a> - 2021-06-24T08:26:38Z<a name="server-v2-1-5-https-github-com-laurent22-joplin-releases-tag-server-v2-1-5-beta-2021-06-24t08-26-38z" href="#server-v2-1-5-https-github-com-laurent22-joplin-releases-tag-server-v2-1-5-beta-2021-06-24t08-26-38z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for X-API-MIN-VERSION header (51f3c00)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.1.4-beta">server-v2.1.4</a> - 2021-06-24T07:26:03Z<a name="server-v2-1-4-https-github-com-laurent22-joplin-releases-tag-server-v2-1-4-beta-2021-06-24t07-26-03z" href="#server-v2-1-4-https-github-com-laurent22-joplin-releases-tag-server-v2-1-4-beta-2021-06-24t07-26-03z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Split permission to share note or folder (0c12c7f)</li>
<li>Fixed: Fixed handling of max item size for encrypted items (112157e)</li>
<li>Fixed: Fixed transaction locking issue when a sub-transaction fails (12aae48)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.1.3-beta">server-v2.1.3</a> - 2021-06-19T14:15:06Z<a name="server-v2-1-3-https-github-com-laurent22-joplin-releases-tag-server-v2-1-3-beta-2021-06-19t14-15-06z" href="#server-v2-1-3-https-github-com-laurent22-joplin-releases-tag-server-v2-1-3-beta-2021-06-19t14-15-06z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for uploading multiple items in one request (3b9c02e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.1.1">server-v2.1.1</a> - 2021-06-17T17:27:29Z<a name="server-v2-1-1-https-github-com-laurent22-joplin-releases-tag-server-v2-1-1-2021-06-17t17-27-29z" href="#server-v2-1-1-https-github-com-laurent22-joplin-releases-tag-server-v2-1-1-2021-06-17t17-27-29z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Added account info to dashboard and title to pages (7f0b3fd)</li>
<li>New: Added way to batch requests (currently disabled) (c682c88)</li>
<li>New: Added way to debug slow queries (e853244)</li>
<li>Improved: Hide Reset Password button when creating new users (ac03c08)</li>
<li>Improved: Sort users by name, then email (65c3d01)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.14">server-v2.0.14</a> - 2021-06-17T08:52:26Z<a name="server-v2-0-14-https-github-com-laurent22-joplin-releases-tag-server-v2-0-14-2021-06-17t08-52-26z" href="#server-v2-0-14-https-github-com-laurent22-joplin-releases-tag-server-v2-0-14-2021-06-17t08-52-26z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow sending reset password email from admin UI (479237d)</li>
<li>Improved: Tokens would expire too soon (6ae0e84)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.13">server-v2.0.13</a> - 2021-06-16T14:28:20Z<a name="server-v2-0-13-https-github-com-laurent22-joplin-releases-tag-server-v2-0-13-2021-06-16t14-28-20z" href="#server-v2-0-13-https-github-com-laurent22-joplin-releases-tag-server-v2-0-13-2021-06-16t14-28-20z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Improved: Allow creating a new user with no password, which must be set via email confirmation (1896549)</li>
<li>Improved: Allow creating a user with a specific account type from admin UI (ecd1602)</li>
<li>Fixed: Fixed error message when item is over the limit (ea65313)</li>
<li>Fixed: Fixed issue with user not being able to modify own profile (3c18190)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.12">server-v2.0.12</a> - 2021-06-15T16:24:42Z<a name="server-v2-0-12-https-github-com-laurent22-joplin-releases-tag-server-v2-0-12-2021-06-15t16-24-42z" href="#server-v2-0-12-https-github-com-laurent22-joplin-releases-tag-server-v2-0-12-2021-06-15t16-24-42z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed handling of user content URL (31121c8)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.11">server-v2.0.11</a> - 2021-06-15T11:41:41Z<a name="server-v2-0-11-https-github-com-laurent22-joplin-releases-tag-server-v2-0-11-2021-06-15t11-41-41z" href="#server-v2-0-11-https-github-com-laurent22-joplin-releases-tag-server-v2-0-11-2021-06-15t11-41-41z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add navbar on login and sign up page (7a3a208)</li>
<li>New: Added option to enable or disable stack traces (5614eb9)</li>
<li>Improved: Handle custom user content URLs (a36b13d)</li>
<li>Fixed: Fixed error when creating user (594084e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.9-beta">server-v2.0.9</a> - 2021-06-11T16:49:05Z<a name="server-v2-0-9-https-github-com-laurent22-joplin-releases-tag-server-v2-0-9-beta-2021-06-11t16-49-05z" href="#server-v2-0-9-https-github-com-laurent22-joplin-releases-tag-server-v2-0-9-beta-2021-06-11t16-49-05z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add navbar on login and sign up page (7a3a208)</li>
<li>New: Added option to enable or disable stack traces (5614eb9)</li>
<li>Improved: Handle custom user content URLs (a36b13d)</li>
<li>Fixed: Fixed error when creating user (594084e)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.6">server-v2.0.6</a> - 2021-06-07T17:27:27Z<a name="server-v2-0-6-https-github-com-laurent22-joplin-releases-tag-server-v2-0-6-2021-06-07t17-27-27z" href="#server-v2-0-6-https-github-com-laurent22-joplin-releases-tag-server-v2-0-6-2021-06-07t17-27-27z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add Stripe integration (770af6a)</li>
<li>New: Add request duration to log (c8d7ecb)</li>
<li>New: Add terms and privacy page (db7b802)</li>
<li>New: Added way to disable signup page, and added links between signup and login pages (75d79f3)</li>
<li>Improved: Check share ID when uploading a note (3c41b45)</li>
<li>Improved: Load shared user content from correct domain (de45740)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.5">server-v2.0.5</a> - 2021-06-02T08:14:47Z<a name="server-v2-0-5-https-github-com-laurent22-joplin-releases-tag-server-v2-0-5-2021-06-02t08-14-47z" href="#server-v2-0-5-https-github-com-laurent22-joplin-releases-tag-server-v2-0-5-2021-06-02t08-14-47z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add version number on website (0ef7e98)</li>
<li>New: Added signup pages (41ed66d)</li>
<li>Improved: Allow disabling item upload for a user (f8a26cf)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.4">server-v2.0.4</a> - 2021-05-25T18:33:11Z<a name="server-v2-0-4-https-github-com-laurent22-joplin-releases-tag-server-v2-0-4-2021-05-25t18-33-11z" href="#server-v2-0-4-https-github-com-laurent22-joplin-releases-tag-server-v2-0-4-2021-05-25t18-33-11z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed Item and Log page when using Postgres (ee0f237)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.3">server-v2.0.3</a> - 2021-05-25T18:08:46Z<a name="server-v2-0-3-https-github-com-laurent22-joplin-releases-tag-server-v2-0-3-2021-05-25t18-08-46z" href="#server-v2-0-3-https-github-com-laurent22-joplin-releases-tag-server-v2-0-3-2021-05-25t18-08-46z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed handling of request origin (12a6634)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.2">server-v2.0.2</a> - 2021-05-25T19:15:50Z<a name="server-v2-0-2-https-github-com-laurent22-joplin-releases-tag-server-v2-0-2-2021-05-25t19-15-50z" href="#server-v2-0-2-https-github-com-laurent22-joplin-releases-tag-server-v2-0-2-2021-05-25t19-15-50z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add mailer service (ed8ee67)</li>
<li>New: Add support for item size limit (6afde54)</li>
<li>New: Added API end points to manage users (77b284f)</li>
<li>Improved: Allow enabling or disabling the sharing feature per user (daaaa13)</li>
<li>Improved: Allow setting the path to the SQLite database using SQLITE_DATABASE env variable (68e79f1)</li>
<li>Improved: Allow using a different domain for API, main website and user content (83cef7a)</li>
<li>Improved: Generate only one share link per note (e156ee1)</li>
<li>Improved: Go back to home page when there is an error and user is logged in (a24b009)</li>
<li>Improved: Improved Items table and added item size to it (7f05420)</li>
<li>Improved: Improved log table too and made it sortable (ec7f0f4)</li>
<li>Improved: Make it more difficult to delete all data (b01aa7e)</li>
<li>Improved: Redirect to correct page when trying to access the root (51051e0)</li>
<li>Improved: Use external directory to store Postgres data in Docker-compose config (71a7fc0)</li>
<li>Fixed: Fixed /items page when using Postgres (2d0580f)</li>
<li>Fixed: Fixed bug when unsharing a notebook that has no recipients (6ddb69e)</li>
<li>Fixed: Fixed deleting a note that has been shared (489995d)</li>
<li>Fixed: Make sure temp files are deleted after upload is done (#4540)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v2.0.1">server-v2.0.1</a> - 2021-05-14T13:55:45Z<a name="server-v2-0-1-https-github-com-laurent22-joplin-releases-tag-server-v2-0-1-2021-05-14t13-55-45z" href="#server-v2-0-1-https-github-com-laurent22-joplin-releases-tag-server-v2-0-1-2021-05-14t13-55-45z" class="heading-anchor">🔗</a></h2>
<ul>
<li>New: Add support for sharing notes via a link (ccbc329)</li>
<li>New: Add support for sharing a folder (#4772)</li>
<li>New: Added log page to view latest changes to files (874f301)</li>
<li>Fixed: Prevent new user password from being hashed twice (76c143e)</li>
<li>Fixed: Fixed crash when rendering note with links to non-existing resources or notes (07484de)</li>
<li>Fixed: Fixed error handling when no session is provided (63a5bfa)</li>
<li>Fixed: Fixed uploading empty file to the API (#4402)</li>
</ul>
<h2><a href="https://github.com/laurent22/joplin/releases/tag/server-v1.7.2">server-v1.7.2</a> - 2021-01-24T19:11:10Z<a name="server-v1-7-2-https-github-com-laurent22-joplin-releases-tag-server-v1-7-2-2021-01-24t19-11-10z" href="#server-v1-7-2-https-github-com-laurent22-joplin-releases-tag-server-v1-7-2-2021-01-24t19-11-10z" class="heading-anchor">🔗</a></h2>
<ul>
<li>Fixed: Fixed password hashing when changing password</li>
<li>Improved: Many other internal changes for increased reliability</li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/changelog_server.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,383 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/clipper.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/clipper.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Joplin Web Clipper | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-clipper">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Joplin Web Clipper<a name="joplin-web-clipper" href="#joplin-web-clipper" class="heading-anchor">🔗</a></h1>
<p>The Web Clipper is a browser extension that allows you to save web pages and screenshots from your browser. To start using it, open the Joplin desktop application, go to the <strong>Web Clipper Options</strong> and follow the instructions.</p>
<img src="/images/WebExtensionScreenshot.png" style="max-width: 50%; border: 1px solid gray;">
<h1>Troubleshooting the web clipper service<a name="troubleshooting-the-web-clipper-service" href="#troubleshooting-the-web-clipper-service" class="heading-anchor">🔗</a></h1>
<p>The web clipper extension and the Joplin application communicates via a service, which is started by the Joplin desktop app.</p>
<p>However certain things can interfere with this service and prevent it from being accessible or from starting. If something does not work, check the following:</p>
<ul>
<li>Check that the service is started. You can check this in the Web clipper options in the desktop app.</li>
<li>Check that the port used by the service is not blocked by a firewall. You can find the port number in the Web clipper options in the desktop Joplin application.</li>
<li>Check that no proxy is running on the machine, or make sure that the requests from the web clipper service are filtered and allowed. For example <a href="https://github.com/laurent22/joplin/issues/561#issuecomment-392220191">https://github.com/laurent22/joplin/issues/561#issuecomment-392220191</a></li>
</ul>
<p>If none of this work, please report it on the <a href="https://discourse.joplinapp.org/">forum</a> or <a href="https://github.com/laurent22/joplin/issues">GitHub issue tracker</a></p>
<h1>Debugging the extension<a name="debugging-the-extension" href="#debugging-the-extension" class="heading-anchor">🔗</a></h1>
<h2>In Chrome<a name="in-chrome" href="#in-chrome" class="heading-anchor">🔗</a></h2>
<p>To provide as much information as possible when reporting an issue, you may provide the log from the various Chrome console.</p>
<p>To do so, first enable developer mode in <a href="chrome://extensions/">chrome://extensions/</a></p>
<ul>
<li>Debugging the popup: Right-click on the Joplin extension icon, and select &quot;Inspect popup&quot;.</li>
<li>Debugging the background script: In <code>chrome://extensions/</code>, click on &quot;Inspect background script&quot;.</li>
<li>Debugging the content script: Press Ctrl+Shift+I to open the console of the current page.</li>
</ul>
<h2>In Firefox<a name="in-firefox" href="#in-firefox" class="heading-anchor">🔗</a></h2>
<ul>
<li>Open <a href="about:debugging">about:debugging</a> in Firefox.</li>
<li>Make sure the checkbox &quot;Enable add-on debugging&quot; is ticked.</li>
<li>Scroll down to the Joplin Web Clipper extension.</li>
<li>Click on &quot;Debugging&quot; - that should open a new console window.</li>
</ul>
<p>Also press F12 to open the regular Firefox console (some messages from the Joplin extension can go there too).</p>
<p>Now use the extension as normal and replicate the bug you're having.</p>
<p>Copy and paste the content of both the debugging window and the Firefox console, and post it to the <a href="https://discourse.joplinapp.org/">forum</a>.</p>
<h1>Using the Web Clipper service<a name="using-the-web-clipper-service" href="#using-the-web-clipper-service" class="heading-anchor">🔗</a></h1>
<p>The Web Clipper service can be used to create, modify or delete notes, notebooks, tags, etc. from any other application. It exposes an API with a number of methods to manage Joplin's data. For more information about this API and how to use it, please check the <a href="https://joplinapp.org/api/references/rest_api/">Joplin API documentation</a>.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/clipper.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,364 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/config_screen.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Configuration screen | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-config_screen">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Configuration screen<a name="configuration-screen" href="#configuration-screen" class="heading-anchor">🔗</a></h1>
<p>Opening the configuration screen depends on the application and sometimes operating system your are using.</p>
<h2>Desktop application<a name="desktop-application" href="#desktop-application" class="heading-anchor">🔗</a></h2>
<p>As a shortcut you can press <kbd>Ctrl</kbd>+<kbd>,</kbd> on Windows and Linux, or <kbd>Cmd</kbd>+<kbd>,</kbd> on macOS.</p>
<h3>Windows and Linux<a name="windows-and-linux" href="#windows-and-linux" class="heading-anchor">🔗</a></h3>
<p>In the menu, click on <strong>Tools &gt; Options</strong>.</p>
<p>Or press <kbd>Ctrl</kbd>+<kbd>,</kbd>.</p>
<h3>macOS<a name="macos" href="#macos" class="heading-anchor">🔗</a></h3>
<p>In the menu, click on <strong>Joplin &gt; Preferences</strong></p>
<p>Or press <kbd>Cmd</kbd>+<kbd>,</kbd>.</p>
<h2>Mobile application<a name="mobile-application" href="#mobile-application" class="heading-anchor">🔗</a></h2>
<p>Tap on the <strong>burger icon ≡</strong> in the top left corner, and select <strong>Configuration</strong>.</p>
<h2>CLI<a name="cli" href="#cli" class="heading-anchor">🔗</a></h2>
<p>Type <code>:help config</code> for information on how to set config values and for the complete list of available options.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,359 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/conflict.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/conflict.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>What is a conflict? | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-conflict">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>What is a conflict?<a name="what-is-a-conflict" href="#what-is-a-conflict" class="heading-anchor">🔗</a></h1>
<p>A conflict happens when one note or one attachment is modified in two different places, and then synchronised. In that case, it is not possible to determine which version of the note or attachment you want to keep, and thus a conflict is generated.</p>
<h1>What happens in case of a conflict?<a name="what-happens-in-case-of-a-conflict" href="#what-happens-in-case-of-a-conflict" class="heading-anchor">🔗</a></h1>
<p>When Joplin detects a conflict, the local note is copied to the Conflict notebook so as to avoid any data loss. Then the remote note is downloaded. You can then inspect the notes in the Conflict notebook, compare it with your other version, and copy any change that might have been overwritten.</p>
<h1>How to avoid conflicts?<a name="how-to-avoid-conflicts" href="#how-to-avoid-conflicts" class="heading-anchor">🔗</a></h1>
<p>Conflicts are always annoying to deal with so it is best to avoid them as much as possible.</p>
<p>For this, the best way is to synchronise as often as possible, so that you are always working with the latest versions of your notes.</p>
<p>Joplin attempts to do this by uploading your latest changes within a few seconds. However, downloading changes is done at fixed intervals, every few minutes (as defined in the Config screen) and this is where conflicts may happen. It can also happen if one of your device did not have an internet connection for some times, and then synchronises. A bad internet connection can also hinder synchronisation because it will interrupt the process, which may have to be restarted from the beginning to ensure consistency.</p>
<p>So if you have not opened your application in a while, manually sync it and wait for it to complete, that way you are sure that whatever change you make will be on the latest version of the note.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/conflict.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,352 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/connection_check.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/connection_check.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Connection check | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-connection_check">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Connection check<a name="connection-check" href="#connection-check" class="heading-anchor">🔗</a></h1>
<p>This page is used by default on the Joplin iOS app to perform the WiFi connection check. More info at <a href="https://joplinapp.org/privacy/">https://joplinapp.org/privacy/</a></p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/connection_check.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -1,407 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/debugging.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/debugging.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>How to enable debugging | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-debugging">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>How to enable debugging<a name="how-to-enable-debugging" href="#how-to-enable-debugging" class="heading-anchor">🔗</a></h1>
<p>It is possible to get the apps to display or log more information that might help debug various issues.</p>
<h2>Desktop application<a name="desktop-application" href="#desktop-application" class="heading-anchor">🔗</a></h2>
<p>If the application starts with a white screen, open <strong>Help &gt; Toggle Development Tools</strong> in the menu. Then check in the console if there is any error or warning and please let us know about it.</p>
<p>Otherwise, follow these instructions:</p>
<ul>
<li>Click on menu <strong>Help &gt; Open Profile Directory</strong> and add a file named &quot;flags.txt&quot; in your directory with the following content: <code>--open-dev-tools --debug --log-level debug</code></li>
<li>Restart the application</li>
<li>The development tools should now be opened. Click the &quot;Console&quot; tab</li>
<li>Now repeat the action that was causing problem. The console might output warnings or errors - please add them to the GitHub issue. Also open log.txt in the config folder and if there is any error or warning, please also add them to the issue.</li>
</ul>
<h2>CLI application<a name="cli-application" href="#cli-application" class="heading-anchor">🔗</a></h2>
<ul>
<li>Start the app with <code>joplin --debug --log-level debug</code></li>
<li>Check log.txt as specified above for the desktop application and attach the log to the GitHub issue (or just the warnings/errors if any). The profile directory would be in <code>~/.config/joplin</code>.</li>
</ul>
<h2>Mobile application<a name="mobile-application" href="#mobile-application" class="heading-anchor">🔗</a></h2>
<ul>
<li>In the <a href="/config_screen/">Configuration screen</a>, press on the <strong>Log button</strong> and post a screenshot of any error/warning.</li>
</ul>
<h1>Creating a low-level bug report on Android<a name="creating-a-low-level-bug-report-on-android" href="#creating-a-low-level-bug-report-on-android" class="heading-anchor">🔗</a></h1>
<p><a href="https://developer.android.com/studio/debug/bug-report">https://developer.android.com/studio/debug/bug-report</a></p>
<p>To get a bug report directly from your device, do the following:</p>
<ul>
<li>Be sure you have <a href="https://developer.android.com/studio/debug/dev-options">Developer Options</a> enabled.</li>
<li>In Developer options, tap Take bug report.</li>
<li>Select the type of bug report you want and tap Report.</li>
</ul>
<p>After a moment you get a notification that the bug report is ready. To share the bug report, tap the notification.</p>
<h1>Creating a low-level bug report on iOS<a name="creating-a-low-level-bug-report-on-ios" href="#creating-a-low-level-bug-report-on-ios" class="heading-anchor">🔗</a></h1>
<p>Some crashes cannot be investigated using Joplin's own tools. In that case, it can be very helpful to provide a native iOS crash report.</p>
<p>For this, please follow these instructions:</p>
<p>You can send it to this address <a href="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/AdresseSupport.png">https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/AdresseSupport.png</a></p>
<p><a href="https://developer.apple.com/library/content/qa/qa1747/_index.html">https://developer.apple.com/library/content/qa/qa1747/_index.html</a></p>
<p>Getting Crash Logs Directly From a Device Without Xcode</p>
<p>Your users can retrieve crash reports from their device and send them to you via email by following these instructions.</p>
<p>(It is not possible to get device console logs directly from a device)</p>
<ol>
<li>
<p>Open Settings app</p>
</li>
<li>
<p>Go to Privacy, then Diagnostics &amp; Usage</p>
</li>
<li>
<p>Select Diagnostics &amp; Usage Data</p>
</li>
<li>
<p>Locate the log for the crashed app. The logs will be named in the format: <code>&lt;AppName&gt;_&lt;DateTime&gt;_&lt;DeviceName&gt;</code></p>
</li>
<li>
<p>Select the desired log. Then, using the text selection UI select the entire text of the log. Once the text is selected, tap Copy</p>
</li>
<li>
<p>Paste the copied text to Mail and send to an email address as desired</p>
</li>
</ol>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/debugging.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,353 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/desktop.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/desktop.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Desktop application | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-desktop">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<div class="donate-links">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
</div>
<h1>Desktop application<a name="desktop-application" href="#desktop-application" class="heading-anchor">🔗</a></h1>
<img src="/images/DemoDesktop.png" style="width: 100%">
<p>For general information relevant to all the applications, see also <a href="https://joplinapp.org">Joplin home page</a>.</p>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/desktop.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

View File

@@ -1,393 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<!--
!!! WARNING !!!
This file was auto-generated from readme/donate.md and any manual change
made to it will be overwritten. To make a change to this file please modify
the source Markdown file:
https://github.com/laurent22/joplin/blob/dev/readme/donate.md
-->
<head>
<!-- Donate button A/B testing -->
<!--
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
--> <meta
charset="utf-8"
http-equiv="X-UA-Compatible"
content="IE=edge,chrome=1"
/>
<link rel="icon" href="&#x2F;images/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta name="description" content="Joplin, the open source note-taking application" />
<link
rel="stylesheet"
href="&#x2F;css/bootstrap5.0.2.min.css"
as="style"
/>
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
rel="stylesheet"
as="style"
media="all"
onload="this.media='all'; this.onload = null"
/>
<link rel="stylesheet" href="/css/site.css?h=679184ffd12e4ab841f24c0858c6ed45" as="style" />
<title>Support Joplin development | Joplin</title>
<script
src="&#x2F;js/jquery-3.6.0.min.js"
rel="preload"
as="script"
></script>
</head>
<body class="website-env-prod">
<div class="container-fluid generic-template -page" id="main-container">
<div class=" navbar-main white-bg" id="nav-section">
<div class="container">
<div class="row">
<div class="col-3">
<a href="/">
<img
src="&#x2F;images/logo-text-blue.svg"
alt=""
id="top-logo"
width="180"
/>
</a>
</div>
<div class="col-9 text-right d-none d-md-block">
<a href="/news/" class="fw500">What's New</a>
<a href="/help/" class="fw500">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500">Forum</a>
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
<a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a>
<span class="pointer"
><img
src="&#x2F;images/mobile-menu-black-open-icon.png"
id="open-menu-mobile"
alt=""
/></span>
&nbsp;&nbsp;
<div id="menu-mobile">
<div>
<div class="text-right">
<img
src="&#x2F;images/close-icon.png"
alt=""
class="pointer"
id="close-menu-mobile"
/>
</div>
<div class="text-center menu-mobile-top">
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
<a href="https:&#x2F;&#x2F;discourse.joplinapp.org&#x2F;" class="fw500 mobile-menu-link">Forum</a>
</div>
<div class="menu-mobile-buttons">
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i>&nbsp;Support us
</a> </div>
</div>
<div id="toc-mobile"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div>
<p class="light-blue mobile-menu-link-bottom text-center">
Copyright &copy; 2016-2021 Laurent&nbsp;Cozic
<br/>
<a href="/privacy/" class="fw500">Privacy Policy</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="help-page-container page-donate">
<div class="container">
<div class="row content-wrapper">
<div id="toc"><div><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="/desktop/">Desktop application</a></li>
<li><a href="/mobile/">Mobile applications</a></li>
<li><a href="/terminal/">Terminal application</a></li>
<li><a href="/clipper/">Web Clipper</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://discourse.joplinapp.org">Joplin Forum</a></li>
<li><a href="/markdown/">Markdown Guide</a></li>
<li><a href="/e2ee/">How to enable end-to-end encryption</a></li>
<li><a href="/conflict/">What is a conflict?</a></li>
<li><a href="/debugging/">How to enable debug mode</a></li>
<li><a href="/rich_text_editor/">About the Rich Text editor limitations</a></li>
<li><a href="/external_links/">External links</a></li>
<li><a href="/faq/">FAQ</a></li>
</ul>
</li>
<li>
<p>Joplin Cloud</p>
<ul>
<li><a href="/share_notebook/">Sharing a notebook</a></li>
<li><a href="/publish_note/">Publishing a note</a></li>
</ul>
</li>
<li>
<p>Joplin API - Get Started</p>
<ul>
<li><a href="/api/overview/">Joplin API Overview</a></li>
<li><a href="/api/get_started/plugins/">Plugin development</a></li>
<li><a href="/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
</ul>
</li>
<li>
<p>Joplin API - References</p>
<ul>
<li><a href="https://joplinapp.org/api/references/plugin_api/classes/joplin.html">Plugin API</a></li>
<li><a href="/api/references/rest_api/">Data API</a></li>
<li><a href="/api/references/plugin_manifest/">Plugin manifest</a></li>
<li><a href="/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
<li><a href="/api/references/plugin_theming/">Plugin theming</a></li>
</ul>
</li>
<li>
<p>Development</p>
<ul>
<li><a href="https://github.com/laurent22/joplin/blob/dev/BUILD.md">How to build the apps</a></li>
<li><a href="/spec/e2ee/">End-to-end encryption spec</a></li>
<li><a href="/spec/history/">Note History spec</a></li>
<li><a href="/spec/sync_lock/">Sync Lock spec</a></li>
<li><a href="/spec/plugins/">Plugin Architecture spec</a></li>
<li><a href="/spec/search_sorting/">Search Sorting spec</a></li>
<li><a href="/spec/server_file_url_format/">Server: File URL Format</a></li>
<li><a href="/spec/server_delta_sync/">Server: Delta Sync</a></li>
<li><a href="/spec/server_sharing/">Server: Sharing</a></li>
</ul>
</li>
<li>
<p>Google Summer of Code 2021</p>
<ul>
<li><a href="/gsoc2021/index/">Google Summer of Code 2021</a></li>
<li><a href="/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
<li><a href="/gsoc2021/ideas/">Project Ideas</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="/changelog/">Changelog (Desktop App)</a></li>
<li><a href="/changelog_cli/">Changelog (CLI App)</a></li>
<li><a href="/changelog_server/">Changelog (Server)</a></li>
<li><a href="/stats/">Stats</a></li>
<li><a href="/donate/">Donate</a></li>
</ul>
</li>
</ul>
</div></div>
<div class="main-content">
<div class="alert alert-danger alert-env-dev" role="alert">
Running in prod mode!
</div>
<h1>Support Joplin development<a name="support-joplin-development" href="#support-joplin-development" class="heading-anchor">🔗</a></h1>
<p>Joplin is an open source project, and your donations support the developer. Developing quality applications mostly takes time, but there are also expenses, such as digital certificates to sign the applications, app store fees, hosting, as well as the hardware to develop and test a cross-platform app.</p>
<p>Most of all, your donation will make it possible to keep up the current development standards, and will bring new features and improvements to the app.</p>
<h2>Donations<a name="donations" href="#donations" class="heading-anchor">🔗</a></h2>
<table class="table">
<thead>
<tr>
<th>Platform</th>
<th>Link</th>
</tr>
</thead>
<tbody>
<tr>
<td>PayPal</td>
<td><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="/images/badges/Donate-PayPal-green.svg" alt="Donate on PayPal"></a></td>
</tr>
<tr>
<td>GitHub Sponsor</td>
<td><a href="https://github.com/sponsors/laurent22/"><img src="/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a></td>
</tr>
<tr>
<td>Patreon</td>
<td><a href="https://www.patreon.com/joplin"><img src="/images/badges/Patreon-Badge.svg" alt="Become a patron"></a></td>
</tr>
<tr>
<td>Bank Transfer</td>
<td><strong>IBAN:</strong> FR76 4061 8803 5200 0400 7415 938<br><strong>BIC/SWIFT:</strong> BOUS FRPP XXX</td>
</tr>
</tbody>
</table>
<h2>Other way to support the development<a name="other-way-to-support-the-development" href="#other-way-to-support-the-development" class="heading-anchor">🔗</a></h2>
<p>Finally, there are other ways to support the development of Joplin:</p>
<ul>
<li>
<p>Consider rating the app on <a href="https://play.google.com/store/apps/details?id=net.cozic.joplin&amp;utm_source=GitHub&amp;utm_campaign=README&amp;pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1">Google Play</a> or <a href="https://itunes.apple.com/us/app/joplin/id1315599797">App Store</a>.</p>
</li>
<li>
<p>Vote for or review the app on <a href="https://alternativeto.net/software/joplin/about/">alternativeTo</a> or <a href="https://www.producthunt.com/posts/joplin">Product Hunt</a>.</p>
</li>
<li>
<p><a href="https://joplinapp.org/prereleases/">Help us test pre-releases</a>.</p>
</li>
<li>
<p><a href="https://en.wikipedia.org/wiki/Joplin_(software)">Improve the Wikipedia article</a>.</p>
</li>
</ul>
<div class="bottom-links">
<a href="https://github.com/laurent22/joplin/blob/dev/readme/donate.md">
<i class="fab fa-github"></i> Improve this doc
</a>
</div>
</div>
</div>
</div>
</div>
<footer class="darkblue-bg">
<div class="container">
<div class="row">
<div class="col-12 col-md-12 social-links">
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
</div>
</div>
<div class="row bottom-links-row">
<div class="col-12 col-md-6">
<p class="text-center-sm">Copyright &copy; 2016-2021 Laurent Cozic</p>
</div>
<div class="col-12 col-md-6">
<p class="text-right text-center-sm right-links">
<span class="footer-right">
<a href="/privacy/">Privacy Policy</a>
</span>
</p>
</div>
</div>
</div>
</footer> </div>
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
<script>
if (window.location.hostname !== 'localhost') {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-103586105-1', 'auto');
ga('send', 'pageview');
}
</script> </body>
</html>

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