Compare commits
214 Commits
ios-v12.0.
...
mobile_cod
Author | SHA1 | Date | |
---|---|---|---|
|
cc3c6596e7 | ||
|
2758f7ebb8 | ||
|
5a734318a3 | ||
|
e33fd0dc11 | ||
|
4733f3cd76 | ||
|
a41b5be4dc | ||
|
3660825a8f | ||
|
5f8f3165ec | ||
|
19bb889197 | ||
|
e01a17528a | ||
|
b929a44bd5 | ||
|
131e6d6fb4 | ||
|
4ceca9e44c | ||
|
9dc703c312 | ||
|
0f64c8d0fe | ||
|
71e6aec144 | ||
|
6a93cb289e | ||
|
b3ca5cdc6f | ||
|
952b2b3427 | ||
|
426915c75d | ||
|
f78ffc5e79 | ||
|
ff8f230555 | ||
|
1808367d78 | ||
|
89f4ca14e8 | ||
|
a4255bb8fe | ||
|
f761bad6bb | ||
|
018381dad3 | ||
|
62b619865a | ||
|
240cb35756 | ||
|
f6f68e9413 | ||
|
f8d2c26c8e | ||
|
09a943e8c9 | ||
|
67a000add9 | ||
|
f0c3a7313c | ||
|
54130bb4af | ||
|
ca01eb35aa | ||
|
576a5074ab | ||
|
e3db3871b6 | ||
|
d411d14818 | ||
|
5214da0a44 | ||
|
a73b749ddd | ||
|
aa4f1146ca | ||
|
5a27d4dc31 | ||
|
bc97bb242a | ||
|
47b283a367 | ||
|
41f01dcc34 | ||
|
3f21a6d9ab | ||
|
afe573dc86 | ||
|
ed7face070 | ||
|
6f836b372d | ||
|
6cfd868b44 | ||
|
3430f0bcae | ||
|
4ae5108717 | ||
|
cf89a06eb2 | ||
|
a8bc9d2a63 | ||
|
bfc8c1e3c1 | ||
|
af15b8359b | ||
|
6c1a6b0a61 | ||
|
5ee4e2bf8e | ||
|
f3359158b9 | ||
|
e210926340 | ||
|
492c5851e3 | ||
|
238cc86590 | ||
|
2dfb33442c | ||
|
51d5e57b9f | ||
|
264f36f257 | ||
|
082c8ffecb | ||
|
c420ad4392 | ||
|
8883df24df | ||
|
d99c34f1dd | ||
|
34a0b2abb7 | ||
|
ab8dbcc73d | ||
|
5258cc335a | ||
|
7d9a222fbb | ||
|
0bc892e40e | ||
|
125af75b93 | ||
|
3d18514c3c | ||
|
7447793e77 | ||
|
427218b1f4 | ||
|
b507fbf837 | ||
|
b0e9b0e042 | ||
|
a53a6e6f15 | ||
|
cebec1a992 | ||
|
e08a909bdb | ||
|
bfa7ea7871 | ||
|
94ea177b76 | ||
|
07ea79bb46 | ||
|
f792fbb5fc | ||
|
8e789ee2ee | ||
|
d34a92d581 | ||
|
37ff926181 | ||
|
5ee2ffe174 | ||
|
1209cc6872 | ||
|
ac800af9f8 | ||
|
7ed1a453e5 | ||
|
55248ed08b | ||
|
d5becfa0ae | ||
|
1476cdf467 | ||
|
6a5629391b | ||
|
b77f9388b0 | ||
|
c3f4f22a2c | ||
|
c9f7d6483f | ||
|
de9d7f747f | ||
|
705432d9e8 | ||
|
a04e7b7d8d | ||
|
00b39e4671 | ||
|
04c4015c85 | ||
|
3d03321328 | ||
|
78f001eb9d | ||
|
269ec34c83 | ||
|
8e35841d79 | ||
|
94ba8549b7 | ||
|
8cbcb78ad1 | ||
|
5047cf1027 | ||
|
5ecac211ae | ||
|
65d87220de | ||
|
f86879778b | ||
|
5390e100e6 | ||
|
51f3c0016e | ||
|
752d118e5d | ||
|
c2cd1733cc | ||
|
fe83491eab | ||
|
6cbdad0690 | ||
|
96931877cf | ||
|
b92ab2b8cc | ||
|
e9f5ca817b | ||
|
dc9bb26c1a | ||
|
0019bd147a | ||
|
118a2f9f25 | ||
|
46868e6b25 | ||
|
67d9977489 | ||
|
638b3236cf | ||
|
8e712eacf5 | ||
|
7c92015fe6 | ||
|
0e757ad562 | ||
|
0c12c7f811 | ||
|
5ecb870ffd | ||
|
e58e2a3421 | ||
|
2e7e1948f8 | ||
|
caabdbd815 | ||
|
65e9268e83 | ||
|
4eec54cd48 | ||
|
5ef5888bfb | ||
|
12aae48ce6 | ||
|
5bb68ba65d | ||
|
112157e33f | ||
|
d129744138 | ||
|
975951ccbc | ||
|
efb6aaf8cc | ||
|
9323caf2f1 | ||
|
d13b1f96ba | ||
|
8e55fe31ee | ||
|
50ecdc2ff1 | ||
|
8a2ca0535d | ||
|
097e49d797 | ||
|
11ffbe7d66 | ||
|
e79f965e5d | ||
|
8cc103a062 | ||
|
7f05efb789 | ||
|
5b368e39ca | ||
|
b88bbc74a2 | ||
|
fc132216cb | ||
|
1dc49c7673 | ||
|
ab9bbcbff2 | ||
|
b7b12f9369 | ||
|
d8752ab889 | ||
|
372495afd3 | ||
|
2320934853 | ||
|
326fef486c | ||
|
7aff6d271d | ||
|
a86a80b21c | ||
|
4dc1210eb5 | ||
|
0222c0f0a6 | ||
|
63f7349c17 | ||
|
3b9c02e92d | ||
|
cef5834d73 | ||
|
b341caf287 | ||
|
fc063fe68e | ||
|
d73eab6f82 | ||
|
d698ea0c12 | ||
|
e04133cfc6 | ||
|
525ab01b9b | ||
|
0d33955fcd | ||
|
7f0b3fd718 | ||
|
65c3d01cc6 | ||
|
ac03c08f33 | ||
|
ea1d614f82 | ||
|
c682c8879c | ||
|
e8532441bc | ||
|
1c597883ef | ||
|
15ce5cdd6e | ||
|
a38958ab7b | ||
|
232e0c937a | ||
|
479237d16f | ||
|
6ae0e84a1a | ||
|
71d567669b | ||
|
db39db45c5 | ||
|
6916b53c2e | ||
|
578550e824 | ||
|
240a624abd | ||
|
981b1d845c | ||
|
313c8bbe8c | ||
|
8c56cf98be | ||
|
18965494d9 | ||
|
ecd1602658 | ||
|
3c181906c2 | ||
|
9e1e144311 | ||
|
757c125bd3 | ||
|
2867b66cf1 | ||
|
5c6fd93753 | ||
|
ea65313bdb | ||
|
1711f7ec88 | ||
|
e0b5ef6630 | ||
|
4bbb3d1d58 |
@@ -53,6 +53,7 @@ packages/app-mobile/locales
|
||||
packages/app-mobile/node_modules
|
||||
packages/app-mobile/pluginAssets/
|
||||
packages/app-mobile/lib/rnInjectedJs/
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.bundle.js
|
||||
packages/lib/assets/
|
||||
packages/lib/rnInjectedJs/
|
||||
packages/lib/vendor/
|
||||
@@ -224,6 +225,9 @@ packages/app-desktop/gui/MainScreen/commands/editAlarm.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.js
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.js
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.js
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.js.map
|
||||
@@ -698,9 +702,18 @@ packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.js.ma
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.d.ts
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js.map
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.d.ts
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.js
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.js.map
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.d.ts
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.js
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.js.map
|
||||
packages/app-mobile/components/SelectDateTimeDialog.d.ts
|
||||
packages/app-mobile/components/SelectDateTimeDialog.js
|
||||
packages/app-mobile/components/SelectDateTimeDialog.js.map
|
||||
packages/app-mobile/components/screens/ConfigScreen.d.ts
|
||||
packages/app-mobile/components/screens/ConfigScreen.js
|
||||
packages/app-mobile/components/screens/ConfigScreen.js.map
|
||||
packages/app-mobile/components/screens/Note.d.ts
|
||||
packages/app-mobile/components/screens/Note.js
|
||||
packages/app-mobile/components/screens/Note.js.map
|
||||
@@ -806,6 +819,9 @@ packages/lib/BaseModel.js.map
|
||||
packages/lib/BaseSyncTarget.d.ts
|
||||
packages/lib/BaseSyncTarget.js
|
||||
packages/lib/BaseSyncTarget.js.map
|
||||
packages/lib/ClipperServer.d.ts
|
||||
packages/lib/ClipperServer.js
|
||||
packages/lib/ClipperServer.js.map
|
||||
packages/lib/HtmlToMd.d.ts
|
||||
packages/lib/HtmlToMd.js
|
||||
packages/lib/HtmlToMd.js.map
|
||||
@@ -842,6 +858,9 @@ packages/lib/SyncTargetOneDrive.js.map
|
||||
packages/lib/Synchronizer.d.ts
|
||||
packages/lib/Synchronizer.js
|
||||
packages/lib/Synchronizer.js.map
|
||||
packages/lib/TaskQueue.d.ts
|
||||
packages/lib/TaskQueue.js
|
||||
packages/lib/TaskQueue.js.map
|
||||
packages/lib/commands/historyBackward.d.ts
|
||||
packages/lib/commands/historyBackward.js
|
||||
packages/lib/commands/historyBackward.js.map
|
||||
@@ -869,6 +888,9 @@ packages/lib/eventManager.js.map
|
||||
packages/lib/file-api-driver-joplinServer.d.ts
|
||||
packages/lib/file-api-driver-joplinServer.js
|
||||
packages/lib/file-api-driver-joplinServer.js.map
|
||||
packages/lib/file-api-driver-memory.d.ts
|
||||
packages/lib/file-api-driver-memory.js
|
||||
packages/lib/file-api-driver-memory.js.map
|
||||
packages/lib/file-api-driver.test.d.ts
|
||||
packages/lib/file-api-driver.test.js
|
||||
packages/lib/file-api-driver.test.js.map
|
||||
@@ -959,6 +981,9 @@ packages/lib/models/ResourceLocalState.js.map
|
||||
packages/lib/models/Revision.d.ts
|
||||
packages/lib/models/Revision.js
|
||||
packages/lib/models/Revision.js.map
|
||||
packages/lib/models/Revision.test.d.ts
|
||||
packages/lib/models/Revision.test.js
|
||||
packages/lib/models/Revision.test.js.map
|
||||
packages/lib/models/Search.d.ts
|
||||
packages/lib/models/Search.js
|
||||
packages/lib/models/Search.js.map
|
||||
@@ -1079,6 +1104,9 @@ packages/lib/services/ResourceService.test.js.map
|
||||
packages/lib/services/RevisionService.d.ts
|
||||
packages/lib/services/RevisionService.js
|
||||
packages/lib/services/RevisionService.js.map
|
||||
packages/lib/services/RevisionService.test.d.ts
|
||||
packages/lib/services/RevisionService.test.js
|
||||
packages/lib/services/RevisionService.test.js.map
|
||||
packages/lib/services/SettingUtils.d.ts
|
||||
packages/lib/services/SettingUtils.js
|
||||
packages/lib/services/SettingUtils.js.map
|
||||
@@ -1223,6 +1251,9 @@ packages/lib/services/plugins/api/Global.js.map
|
||||
packages/lib/services/plugins/api/Joplin.d.ts
|
||||
packages/lib/services/plugins/api/Joplin.js
|
||||
packages/lib/services/plugins/api/Joplin.js.map
|
||||
packages/lib/services/plugins/api/JoplinClipboard.d.ts
|
||||
packages/lib/services/plugins/api/JoplinClipboard.js
|
||||
packages/lib/services/plugins/api/JoplinClipboard.js.map
|
||||
packages/lib/services/plugins/api/JoplinCommands.d.ts
|
||||
packages/lib/services/plugins/api/JoplinCommands.js
|
||||
packages/lib/services/plugins/api/JoplinCommands.js.map
|
||||
@@ -1313,6 +1344,9 @@ packages/lib/services/rest/ApiResponse.js.map
|
||||
packages/lib/services/rest/actionApi.desktop.d.ts
|
||||
packages/lib/services/rest/actionApi.desktop.js
|
||||
packages/lib/services/rest/actionApi.desktop.js.map
|
||||
packages/lib/services/rest/routes/auth.d.ts
|
||||
packages/lib/services/rest/routes/auth.js
|
||||
packages/lib/services/rest/routes/auth.js.map
|
||||
packages/lib/services/rest/routes/folders.d.ts
|
||||
packages/lib/services/rest/routes/folders.js
|
||||
packages/lib/services/rest/routes/folders.js.map
|
||||
@@ -1373,6 +1407,9 @@ packages/lib/services/searchengine/SearchEngineUtils.test.js.map
|
||||
packages/lib/services/searchengine/filterParser.d.ts
|
||||
packages/lib/services/searchengine/filterParser.js
|
||||
packages/lib/services/searchengine/filterParser.js.map
|
||||
packages/lib/services/searchengine/filterParser.test.d.ts
|
||||
packages/lib/services/searchengine/filterParser.test.js
|
||||
packages/lib/services/searchengine/filterParser.test.js.map
|
||||
packages/lib/services/searchengine/queryBuilder.d.ts
|
||||
packages/lib/services/searchengine/queryBuilder.js
|
||||
packages/lib/services/searchengine/queryBuilder.js.map
|
||||
@@ -1388,6 +1425,12 @@ packages/lib/services/spellChecker/SpellCheckerService.js.map
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.d.ts
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.js
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.js.map
|
||||
packages/lib/services/synchronizer/ItemUploader.d.ts
|
||||
packages/lib/services/synchronizer/ItemUploader.js
|
||||
packages/lib/services/synchronizer/ItemUploader.js.map
|
||||
packages/lib/services/synchronizer/ItemUploader.test.d.ts
|
||||
packages/lib/services/synchronizer/ItemUploader.test.js
|
||||
packages/lib/services/synchronizer/ItemUploader.test.js.map
|
||||
packages/lib/services/synchronizer/LockHandler.d.ts
|
||||
packages/lib/services/synchronizer/LockHandler.js
|
||||
packages/lib/services/synchronizer/LockHandler.js.map
|
||||
@@ -1640,4 +1683,19 @@ packages/tools/tool-utils.js.map
|
||||
packages/tools/update-readme-sponsors.d.ts
|
||||
packages/tools/update-readme-sponsors.js
|
||||
packages/tools/update-readme-sponsors.js.map
|
||||
packages/tools/website/build.d.ts
|
||||
packages/tools/website/build.js
|
||||
packages/tools/website/build.js.map
|
||||
packages/tools/website/utils/plans.d.ts
|
||||
packages/tools/website/utils/plans.js
|
||||
packages/tools/website/utils/plans.js.map
|
||||
packages/tools/website/utils/pressCarousel.d.ts
|
||||
packages/tools/website/utils/pressCarousel.js
|
||||
packages/tools/website/utils/pressCarousel.js.map
|
||||
packages/tools/website/utils/render.d.ts
|
||||
packages/tools/website/utils/render.js
|
||||
packages/tools/website/utils/render.js.map
|
||||
packages/tools/website/utils/types.d.ts
|
||||
packages/tools/website/utils/types.js
|
||||
packages/tools/website/utils/types.js.map
|
||||
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
||||
|
@@ -37,6 +37,9 @@ module.exports = {
|
||||
|
||||
// Server admin UI global variables
|
||||
'onDocumentReady': 'readonly',
|
||||
'setupPasswordStrengthHandler': 'readonly',
|
||||
'$': 'readonly',
|
||||
'zxcvbn': 'readonly',
|
||||
|
||||
'tinymce': 'readonly',
|
||||
},
|
||||
|
15
.github/scripts/run_ci.sh
vendored
@@ -60,6 +60,8 @@ npm install
|
||||
# =============================================================================
|
||||
|
||||
if [ "$IS_PULL_REQUEST" == "1" ] || [ "$IS_DEV_BRANCH" = "1" ]; then
|
||||
echo "Step: Running tests..."
|
||||
|
||||
npm run test-ci
|
||||
testResult=$?
|
||||
if [ $testResult -ne 0 ]; then
|
||||
@@ -72,7 +74,9 @@ fi
|
||||
# release randomly fail.
|
||||
# =============================================================================
|
||||
|
||||
if [ "$IS_PULL_REQUEST" != "1" ]; then
|
||||
if [ "$IS_PULL_REQUEST" == "1" ]; then
|
||||
echo "Step: Running linter..."
|
||||
|
||||
npm run linter-ci ./
|
||||
testResult=$?
|
||||
if [ $testResult -ne 0 ]; then
|
||||
@@ -88,6 +92,8 @@ fi
|
||||
|
||||
if [ "$IS_PULL_REQUEST" == "1" ]; then
|
||||
if [ "$IS_LINUX" == "1" ]; then
|
||||
echo "Step: Validating translations..."
|
||||
|
||||
node packages/tools/validate-translation.js
|
||||
testResult=$?
|
||||
if [ $testResult -ne 0 ]; then
|
||||
@@ -105,6 +111,7 @@ fi
|
||||
|
||||
if [ "$IS_PULL_REQUEST" == "1" ]; then
|
||||
if [ "$IS_MACOS" == "1" ]; then
|
||||
echo "Step: Not building Electron app"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
@@ -122,13 +129,13 @@ fi
|
||||
cd "$ROOT_DIR/packages/app-desktop"
|
||||
|
||||
if [[ $GIT_TAG_NAME = v* ]]; then
|
||||
echo "Building and publishing desktop application..."
|
||||
echo "Step: Building and publishing desktop application..."
|
||||
USE_HARD_LINKS=false npm run dist
|
||||
elif [[ $GIT_TAG_NAME = server-v* ]] && [[ $IS_LINUX = 1 ]]; then
|
||||
echo "Building Docker Image..."
|
||||
echo "Step: Building Docker Image..."
|
||||
cd "$ROOT_DIR"
|
||||
npm run buildServerDocker -- --tag-name $GIT_TAG_NAME
|
||||
else
|
||||
echo "Building but *not* publishing desktop application..."
|
||||
echo "Step: Building but *not* publishing desktop application..."
|
||||
USE_HARD_LINKS=false npm run dist -- --publish=never
|
||||
fi
|
||||
|
21
.github/workflows/github-actions-main.yml
vendored
@@ -5,7 +5,7 @@ jobs:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest]
|
||||
os: [macos-latest, ubuntu-latest, windows-2016]
|
||||
steps:
|
||||
|
||||
# Silence apt-get update errors (for example when a module doesn't
|
||||
@@ -50,14 +50,27 @@ jobs:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Run script...
|
||||
- name: Run tests, build and publish Linux and macOS apps
|
||||
if: runner.os == 'Linux' || runner.os == 'macOs'
|
||||
env:
|
||||
APPLE_ASC_PROVIDER: ${{ secrets.APPLE_ASC_PROVIDER }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
||||
CSC_LINK: ${{ secrets.CSC_LINK }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
|
||||
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
IS_CONTINUOUS_INTEGRATION: 1
|
||||
run: |
|
||||
"${GITHUB_WORKSPACE}/.github/scripts/run_ci.sh"
|
||||
|
||||
- name: Build and publish Windows app
|
||||
if: runner.os == 'Windows' && startsWith(github.ref, 'refs/tags/v')
|
||||
env:
|
||||
CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }}
|
||||
CSC_LINK: ${{ secrets.WINDOWS_CSC_LINK }}
|
||||
GH_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
IS_CONTINUOUS_INTEGRATION: 1
|
||||
run: |
|
||||
npm install
|
||||
cd packages/app-desktop
|
||||
npm run dist
|
57
.gitignore
vendored
@@ -210,6 +210,9 @@ packages/app-desktop/gui/MainScreen/commands/editAlarm.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.js
|
||||
packages/app-desktop/gui/MainScreen/commands/exportPdf.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.js
|
||||
packages/app-desktop/gui/MainScreen/commands/gotoAnything.js.map
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.d.ts
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.js
|
||||
packages/app-desktop/gui/MainScreen/commands/hideModalMessage.js.map
|
||||
@@ -684,9 +687,18 @@ packages/app-mobile/components/NoteBodyViewer/hooks/useOnResourceLongPress.js.ma
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.d.ts
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js
|
||||
packages/app-mobile/components/NoteBodyViewer/hooks/useSource.js.map
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.d.ts
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.js
|
||||
packages/app-mobile/components/NoteEditor/CodeMirror.js.map
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.d.ts
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.js
|
||||
packages/app-mobile/components/NoteEditor/NoteEditor.js.map
|
||||
packages/app-mobile/components/SelectDateTimeDialog.d.ts
|
||||
packages/app-mobile/components/SelectDateTimeDialog.js
|
||||
packages/app-mobile/components/SelectDateTimeDialog.js.map
|
||||
packages/app-mobile/components/screens/ConfigScreen.d.ts
|
||||
packages/app-mobile/components/screens/ConfigScreen.js
|
||||
packages/app-mobile/components/screens/ConfigScreen.js.map
|
||||
packages/app-mobile/components/screens/Note.d.ts
|
||||
packages/app-mobile/components/screens/Note.js
|
||||
packages/app-mobile/components/screens/Note.js.map
|
||||
@@ -792,6 +804,9 @@ packages/lib/BaseModel.js.map
|
||||
packages/lib/BaseSyncTarget.d.ts
|
||||
packages/lib/BaseSyncTarget.js
|
||||
packages/lib/BaseSyncTarget.js.map
|
||||
packages/lib/ClipperServer.d.ts
|
||||
packages/lib/ClipperServer.js
|
||||
packages/lib/ClipperServer.js.map
|
||||
packages/lib/HtmlToMd.d.ts
|
||||
packages/lib/HtmlToMd.js
|
||||
packages/lib/HtmlToMd.js.map
|
||||
@@ -828,6 +843,9 @@ packages/lib/SyncTargetOneDrive.js.map
|
||||
packages/lib/Synchronizer.d.ts
|
||||
packages/lib/Synchronizer.js
|
||||
packages/lib/Synchronizer.js.map
|
||||
packages/lib/TaskQueue.d.ts
|
||||
packages/lib/TaskQueue.js
|
||||
packages/lib/TaskQueue.js.map
|
||||
packages/lib/commands/historyBackward.d.ts
|
||||
packages/lib/commands/historyBackward.js
|
||||
packages/lib/commands/historyBackward.js.map
|
||||
@@ -855,6 +873,9 @@ packages/lib/eventManager.js.map
|
||||
packages/lib/file-api-driver-joplinServer.d.ts
|
||||
packages/lib/file-api-driver-joplinServer.js
|
||||
packages/lib/file-api-driver-joplinServer.js.map
|
||||
packages/lib/file-api-driver-memory.d.ts
|
||||
packages/lib/file-api-driver-memory.js
|
||||
packages/lib/file-api-driver-memory.js.map
|
||||
packages/lib/file-api-driver.test.d.ts
|
||||
packages/lib/file-api-driver.test.js
|
||||
packages/lib/file-api-driver.test.js.map
|
||||
@@ -945,6 +966,9 @@ packages/lib/models/ResourceLocalState.js.map
|
||||
packages/lib/models/Revision.d.ts
|
||||
packages/lib/models/Revision.js
|
||||
packages/lib/models/Revision.js.map
|
||||
packages/lib/models/Revision.test.d.ts
|
||||
packages/lib/models/Revision.test.js
|
||||
packages/lib/models/Revision.test.js.map
|
||||
packages/lib/models/Search.d.ts
|
||||
packages/lib/models/Search.js
|
||||
packages/lib/models/Search.js.map
|
||||
@@ -1065,6 +1089,9 @@ packages/lib/services/ResourceService.test.js.map
|
||||
packages/lib/services/RevisionService.d.ts
|
||||
packages/lib/services/RevisionService.js
|
||||
packages/lib/services/RevisionService.js.map
|
||||
packages/lib/services/RevisionService.test.d.ts
|
||||
packages/lib/services/RevisionService.test.js
|
||||
packages/lib/services/RevisionService.test.js.map
|
||||
packages/lib/services/SettingUtils.d.ts
|
||||
packages/lib/services/SettingUtils.js
|
||||
packages/lib/services/SettingUtils.js.map
|
||||
@@ -1209,6 +1236,9 @@ packages/lib/services/plugins/api/Global.js.map
|
||||
packages/lib/services/plugins/api/Joplin.d.ts
|
||||
packages/lib/services/plugins/api/Joplin.js
|
||||
packages/lib/services/plugins/api/Joplin.js.map
|
||||
packages/lib/services/plugins/api/JoplinClipboard.d.ts
|
||||
packages/lib/services/plugins/api/JoplinClipboard.js
|
||||
packages/lib/services/plugins/api/JoplinClipboard.js.map
|
||||
packages/lib/services/plugins/api/JoplinCommands.d.ts
|
||||
packages/lib/services/plugins/api/JoplinCommands.js
|
||||
packages/lib/services/plugins/api/JoplinCommands.js.map
|
||||
@@ -1299,6 +1329,9 @@ packages/lib/services/rest/ApiResponse.js.map
|
||||
packages/lib/services/rest/actionApi.desktop.d.ts
|
||||
packages/lib/services/rest/actionApi.desktop.js
|
||||
packages/lib/services/rest/actionApi.desktop.js.map
|
||||
packages/lib/services/rest/routes/auth.d.ts
|
||||
packages/lib/services/rest/routes/auth.js
|
||||
packages/lib/services/rest/routes/auth.js.map
|
||||
packages/lib/services/rest/routes/folders.d.ts
|
||||
packages/lib/services/rest/routes/folders.js
|
||||
packages/lib/services/rest/routes/folders.js.map
|
||||
@@ -1359,6 +1392,9 @@ packages/lib/services/searchengine/SearchEngineUtils.test.js.map
|
||||
packages/lib/services/searchengine/filterParser.d.ts
|
||||
packages/lib/services/searchengine/filterParser.js
|
||||
packages/lib/services/searchengine/filterParser.js.map
|
||||
packages/lib/services/searchengine/filterParser.test.d.ts
|
||||
packages/lib/services/searchengine/filterParser.test.js
|
||||
packages/lib/services/searchengine/filterParser.test.js.map
|
||||
packages/lib/services/searchengine/queryBuilder.d.ts
|
||||
packages/lib/services/searchengine/queryBuilder.js
|
||||
packages/lib/services/searchengine/queryBuilder.js.map
|
||||
@@ -1374,6 +1410,12 @@ packages/lib/services/spellChecker/SpellCheckerService.js.map
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.d.ts
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.js
|
||||
packages/lib/services/spellChecker/SpellCheckerServiceDriverBase.js.map
|
||||
packages/lib/services/synchronizer/ItemUploader.d.ts
|
||||
packages/lib/services/synchronizer/ItemUploader.js
|
||||
packages/lib/services/synchronizer/ItemUploader.js.map
|
||||
packages/lib/services/synchronizer/ItemUploader.test.d.ts
|
||||
packages/lib/services/synchronizer/ItemUploader.test.js
|
||||
packages/lib/services/synchronizer/ItemUploader.test.js.map
|
||||
packages/lib/services/synchronizer/LockHandler.d.ts
|
||||
packages/lib/services/synchronizer/LockHandler.js
|
||||
packages/lib/services/synchronizer/LockHandler.js.map
|
||||
@@ -1626,4 +1668,19 @@ packages/tools/tool-utils.js.map
|
||||
packages/tools/update-readme-sponsors.d.ts
|
||||
packages/tools/update-readme-sponsors.js
|
||||
packages/tools/update-readme-sponsors.js.map
|
||||
packages/tools/website/build.d.ts
|
||||
packages/tools/website/build.js
|
||||
packages/tools/website/build.js.map
|
||||
packages/tools/website/utils/plans.d.ts
|
||||
packages/tools/website/utils/plans.js
|
||||
packages/tools/website/utils/plans.js.map
|
||||
packages/tools/website/utils/pressCarousel.d.ts
|
||||
packages/tools/website/utils/pressCarousel.js
|
||||
packages/tools/website/utils/pressCarousel.js.map
|
||||
packages/tools/website/utils/render.d.ts
|
||||
packages/tools/website/utils/render.js
|
||||
packages/tools/website/utils/render.js.map
|
||||
packages/tools/website/utils/types.d.ts
|
||||
packages/tools/website/utils/types.js
|
||||
packages/tools/website/utils/types.js.map
|
||||
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
||||
|
3
Assets/LICENSE
Normal file
@@ -0,0 +1,3 @@
|
||||
All assets in this directory including, but not limited to, logos, icons
|
||||
and images are copyright (c) Laurent Cozic, all rights reserved.
|
||||
They may not be used without a permission.
|
7
Assets/WebsiteAssets/css/bootstrap5.0.2.min.css
vendored
Normal file
996
Assets/WebsiteAssets/css/site.css
Normal file
@@ -0,0 +1,996 @@
|
||||
html {
|
||||
/* https://css-tricks.com/fixed-headers-on-page-links-and-overlapping-content-oh-my/ */
|
||||
scroll-padding-top: 110px;
|
||||
}
|
||||
|
||||
* {
|
||||
outline: none;
|
||||
font-family: "Montserrat", sans-serif;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
overflow-x: hidden;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#main-container {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 225px;
|
||||
}
|
||||
|
||||
.press-carousel .photo {
|
||||
width: 123px;
|
||||
height: 136px;
|
||||
}
|
||||
|
||||
.press-carousel a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.fw400 {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.fw500 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.fw600 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.fw700 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ml-20 {
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
.ml-30 {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.blue-bg {
|
||||
background-color: rgb(4, 56, 115);
|
||||
}
|
||||
|
||||
.blue-bg * {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.white-bg {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.darkblue-bg {
|
||||
background-color: #072445;
|
||||
}
|
||||
|
||||
.gray-bg {
|
||||
background-color: #f7fbff;
|
||||
}
|
||||
|
||||
.light-blue,
|
||||
.light-blue * {
|
||||
color: #90b1d9;
|
||||
}
|
||||
|
||||
.img-center {
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
|
||||
.sponsor-button i {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
.sponsor-button .heart-full {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.sponsor-button:hover .heart-full {
|
||||
position: static;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.sponsor-button:hover .heart-line {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.container-fluid {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.img-fluid {
|
||||
image-rendering: -moz-crisp-edges; /* Firefox */
|
||||
image-rendering: -o-crisp-edges; /* Opera */
|
||||
image-rendering: -webkit-optimize-contrast; /* Webkit (non-standard naming) */
|
||||
image-rendering: crisp-edges;
|
||||
-ms-interpolation-mode: nearest-neighbor; /* IE (non-standard property) */
|
||||
}
|
||||
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin-bottom: 0.7em;
|
||||
margin-top: 1.2em;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 0.6em;
|
||||
margin-top: 1.1em;
|
||||
border-bottom: 1px solid #ddd;
|
||||
line-height: 1.3em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.front-page h1 {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
.front-page h2 {
|
||||
font-size: 2.5em;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.front-page p {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
p,
|
||||
.button-link {
|
||||
line-height: 30.8px;
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
color: #32363f;
|
||||
}
|
||||
|
||||
.button-link {
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
/* min-width: 300px; */
|
||||
display: inline-block;
|
||||
font-weight: 500;
|
||||
border: solid 1px #fff;
|
||||
border-radius: 40px;
|
||||
padding: 8px 20px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.button-link:hover,
|
||||
.button-link:focus {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.btn-blue {
|
||||
background-color: #4f9cf9;
|
||||
color: #fff !important;
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.btn-blue:hover {
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.btn-white {
|
||||
background-color: #fff;
|
||||
border-color: #4f9cf9;
|
||||
color: #4f9cf9;
|
||||
}
|
||||
|
||||
.btn-white:hover,
|
||||
.btn-white:focus {
|
||||
color: #4f9cf9;
|
||||
}
|
||||
|
||||
.frame-bg {
|
||||
background-size: contain;
|
||||
background-position: bottom;
|
||||
background-repeat: no-repeat;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.frame-bg-blue {
|
||||
background-image: url("../images/frame-blue.png");
|
||||
}
|
||||
.frame-bg-blue-lg {
|
||||
background-image: url("../images/frame-blue-lg.png");
|
||||
}
|
||||
.frame-bg-yellow {
|
||||
background-image: url("../images/frame-yellow.png");
|
||||
}
|
||||
.frame-bg-yellow-lg {
|
||||
background-image: url("../images/frame-yellow-lg.png");
|
||||
}
|
||||
|
||||
/** menu **/
|
||||
#nav-section {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 9;
|
||||
}
|
||||
|
||||
#nav-section a {
|
||||
display: inline-block;
|
||||
margin-left: 30px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav-section a:hover,
|
||||
#nav-section a:focus {
|
||||
color: #fff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#menu-mobile a:hover, #menu-mobile a:focus {
|
||||
color: #0557ba;
|
||||
}
|
||||
|
||||
.navbar-main .plans-button,
|
||||
#menu-mobile .plans-button {
|
||||
color: #0557ba;
|
||||
border-color: #0557ba;
|
||||
/* margin-bottom: 10px; */
|
||||
}
|
||||
|
||||
#nav-section.white-bg a {
|
||||
color: #0557ba;
|
||||
}
|
||||
|
||||
#nav-section.white-bg a:hover,
|
||||
#nav-section.white-bg a:focus {
|
||||
color: #0557ba;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#nav-section {
|
||||
box-shadow: 0 3px 11px 0 rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.nav-item .download-btn:hover,
|
||||
.nav-item .download-btn:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#nav-section .row {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsor-github-item {
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsors-github,
|
||||
#sponsors-section .sponsors-org {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
max-width: 900px;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsors-org {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-flow: wrap;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsors-org .sponsor-org-item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
margin-left: 15px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsors-org .sponsor-org-item img {
|
||||
max-width: 256px;
|
||||
max-height: 80px;
|
||||
}
|
||||
|
||||
#sponsors-section .sponsors-github .sponsor-github-item {
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* top-section */
|
||||
|
||||
#top-section {
|
||||
background-image: url("../images/top-left-bg.png"),
|
||||
url("../images/top-right-bg.png");
|
||||
background-repeat: no-repeat, no-repeat;
|
||||
background-position: left, right bottom;
|
||||
background-size: contain;
|
||||
padding-top: 100px;
|
||||
}
|
||||
|
||||
#top-section .download-button {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#top-section .frame-bg {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
#logo-logo {
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
#top-section-text {
|
||||
max-width: 600px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#top-section-img {
|
||||
margin-bottom: -280px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* multimedia-section */
|
||||
#multimedia-notes-section {
|
||||
padding-top: 280px;
|
||||
padding-bottom: 50px;
|
||||
background-image: url("../images/multimedia-note-bg.png");
|
||||
background-repeat: no-repeat;
|
||||
background-position: left;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
#multimedia-notes-section .frame-bg {
|
||||
background-size: 100% 50%;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
#multimedia-title {
|
||||
margin-top: 100px;
|
||||
}
|
||||
|
||||
#multimedia-text {
|
||||
max-width: 540px;
|
||||
}
|
||||
|
||||
/* work-together-section */
|
||||
#work-together-section {
|
||||
padding-top: 100px;
|
||||
padding-bottom: 100px;
|
||||
background-image: url("../images/work-together-bg.png");
|
||||
background-position: left;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
/* save-web-section */
|
||||
#save-web-section {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 80px;
|
||||
background-image: url("../images/save-web-bg.png");
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
background-position: left bottom;
|
||||
}
|
||||
|
||||
#save-web-section .frame-bg {
|
||||
background-size: 100% 50%;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
|
||||
#save-web-title {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
/* customise-it-section */
|
||||
#customise-it-section {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 60px;
|
||||
background-image: url("../images/customise-it-bg.png");
|
||||
background-position: 100% 80%;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
#customise-it-title {
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
.website-env-prod .alert-env-dev {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* your-data-section */
|
||||
#your-data-section {
|
||||
padding-top: 80px;
|
||||
padding-bottom: 80px;
|
||||
}
|
||||
|
||||
/* in-the-press-section */
|
||||
#in-the-press-section {
|
||||
padding-top: 0;
|
||||
padding-bottom: 50px;
|
||||
background-image: url("../images/in-the-web-bg.png");
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto;
|
||||
}
|
||||
|
||||
#in-the-press-section .carousel-item {
|
||||
min-height: 550px;
|
||||
}
|
||||
|
||||
#in-the-press-section .carousel-caption {
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#in-the-press-section .carousel-indicators [data-bs-target] {
|
||||
background: #4f9cf9;
|
||||
border-radius: 50px;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
/* TOC */
|
||||
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 1em;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.page-download {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.page-download .downloaded-filename {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@media (min-width: 767px) {
|
||||
.content-wrapper{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main-content{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
/* your-note-section */
|
||||
#your-note-section {
|
||||
padding-top: 50px;
|
||||
padding-bottom: 0px;
|
||||
background-image: url("../images/your-note-bg.png");
|
||||
background-position: left;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#your-note-text {
|
||||
max-width: 620px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#your-note-section .button-link {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* footer section */
|
||||
footer {
|
||||
padding-top: 50px;
|
||||
padding-bottom: 30px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
footer a,
|
||||
footer p {
|
||||
color: #90b1d9;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: #90b1d9;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
footer hr {
|
||||
background-color: #0d3562;
|
||||
margin: 25px 0px;
|
||||
}
|
||||
|
||||
footer .button-link {
|
||||
min-width: inherit;
|
||||
padding: 12px 22px;
|
||||
font-size: 18px;
|
||||
margin-top: -12px;
|
||||
}
|
||||
|
||||
footer .right-links a {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
IN THE PRESS
|
||||
The "In the press" section height needs to be adjusted as the
|
||||
window is changed so that the content is fully visible.
|
||||
*****************************************************************/
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
#in-the-press-section .carousel-item {
|
||||
min-height: 670px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
#in-the-press-section {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
#in-the-press-section h2 {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#in-the-press-section .carousel {
|
||||
margin-top: -50px;
|
||||
}
|
||||
|
||||
#in-the-press-section .carousel-item {
|
||||
min-height: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
#in-the-press-section .carousel-item {
|
||||
min-height: 700px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 300px) {
|
||||
#in-the-press-section .carousel-item {
|
||||
min-height: 800px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
#nav-section a {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.plans-page {
|
||||
background:none;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
NARROW VIEW
|
||||
- Top right menu is displayed
|
||||
- Sections are changed: columns with text, then button, then image
|
||||
*****************************************************************/
|
||||
@media (max-width: 767px) {
|
||||
#main-container {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 260px;
|
||||
}
|
||||
|
||||
.front-page h1 {
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
.front-page h2 {
|
||||
font-size: 2.1em;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.front-page p {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.front-page .button-link {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.ml-mobile-0 {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.img-fluid {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.text-center-sm {
|
||||
text-align: center !important;
|
||||
}
|
||||
|
||||
#top-section,
|
||||
#multimedia-notes-section,
|
||||
#work-together-section,
|
||||
#your-note-section {
|
||||
background-image: inherit;
|
||||
}
|
||||
|
||||
#nav-section {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
#top-logo {
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#menu-mobile {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #fff;
|
||||
width: 300px;
|
||||
border-top-left-radius: 10px;
|
||||
border-bottom-left-radius: 10px;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
padding: 20px 5px 20px 20px;
|
||||
padding-top: 0;
|
||||
margin-right: -300px;
|
||||
box-shadow: -3px 0px 11px 0 rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
#menu-mobile a {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
#toc-mobile {
|
||||
overflow-y: scroll;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#menu-mobile .menu-mobile-buttons {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#menu-mobile .menu-mobile-top {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#menu-mobile .menu-mobile-buttons .sponsor-button {
|
||||
margin-left: .5em;
|
||||
}
|
||||
|
||||
#toc-mobile ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#toc-mobile ul > li > p {
|
||||
font-weight: bold;
|
||||
/* text-align: center; */
|
||||
margin-top: 1em;
|
||||
}
|
||||
|
||||
#toc-mobile ul > li > ul > li {
|
||||
font-weight: normal;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.mobile-menu-link {
|
||||
color: #32363f;
|
||||
width: 100%;
|
||||
display: block !important;
|
||||
padding: 15px 0px;
|
||||
border-bottom: solid 1px #d6e2ef;
|
||||
font-size: 16px;
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.mobile-menu-link:hover,
|
||||
.mobile-menu-link:focus {
|
||||
color: #32363f !important;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
#menu-mobile .button-link {
|
||||
padding: 10px 15px;
|
||||
font-size: 16px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.mobile-menu-link-bottom {
|
||||
font-size: 12px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.mobile-menu-link-bottom a {
|
||||
margin-left: 0px !important;
|
||||
}
|
||||
|
||||
#top-section,
|
||||
.page-container {
|
||||
padding-top: 80px;
|
||||
}
|
||||
|
||||
#top-section-img {
|
||||
margin-bottom: -90px;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
#work-together-section {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
#multimedia-notes-section {
|
||||
padding-top: 30px;
|
||||
}
|
||||
#save-web-section,
|
||||
#customise-it-section,
|
||||
#your-data-section {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 50px;
|
||||
background-image: inherit;
|
||||
}
|
||||
|
||||
footer {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
PLANS PAGE
|
||||
*****************************************************************/
|
||||
|
||||
#plans-section .sub-title {
|
||||
max-width: 800px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.plans-page h1 {
|
||||
font-size: 2.2em;
|
||||
/* margin-top:0; */
|
||||
}
|
||||
|
||||
.plans-page .title-box p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-container {
|
||||
padding-top: 90px;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
.donate-links {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.price-container {
|
||||
border: 1px solid #4f9cf9;
|
||||
background-color: rgba(255,255,255,0.9);
|
||||
box-sizing: border-box;
|
||||
border-radius: 20px;
|
||||
padding: 30px 20px;
|
||||
padding-bottom: 30px;
|
||||
margin-bottom: 50px;
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.price-container p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.price-container p.price {
|
||||
font-size: 25px;
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.price-container p.unchecked-text {
|
||||
color: #9db8d9;
|
||||
}
|
||||
|
||||
.price-container p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.price-container-blue {
|
||||
background: linear-gradient(251.85deg, #0b4f99 -11.85%, #002d61 104.73%);
|
||||
box-shadow: 0px 4px 16px rgba(105, 132, 172, 0.13);
|
||||
margin-top: 40px;
|
||||
padding-top: 50px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.price-container .subscribe-wrapper {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
.price-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.price-row .plan-type {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.price-row .plan-type img {
|
||||
width: 65px;
|
||||
}
|
||||
|
||||
.price-row .plan-price {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
flex: 1;
|
||||
font-size: 25px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.price-row .plan-price .per-month {
|
||||
font-size: .5em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.price-container-blue p {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.price-container .feature {
|
||||
font-size: 0.9em;
|
||||
margin-right: .5em;
|
||||
color: #4F9CF9;
|
||||
}
|
||||
|
||||
.price-container .feature-off {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
@media (max-width: 1400px) {
|
||||
.price-row .plan-type {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.price-row .plan-type img {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
.price-row .plan-price {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
.price-row .plan-type {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.price-row .plan-type img {
|
||||
width: 65px;
|
||||
}
|
||||
|
||||
.price-row .plan-price {
|
||||
font-size: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
MOBILE VIEW
|
||||
*****************************************************************/
|
||||
|
||||
@media (max-width: 400px) {
|
||||
#top-section {
|
||||
background-image: url("../images/top-bg-mobile.png");
|
||||
background-position: bottom;
|
||||
padding-bottom: 160px;
|
||||
}
|
||||
#top-section-img {
|
||||
margin-bottom: -240px;
|
||||
margin-top: 130px;
|
||||
}
|
||||
#save-web-section {
|
||||
background-image: url("../images/save-web-bg-mobile.png");
|
||||
background-position: bottom;
|
||||
}
|
||||
#your-note-section {
|
||||
background-image: url("../images/your-note-bg-mobile.png");
|
||||
background-position: bottom;
|
||||
padding-bottom: 170px;
|
||||
background-size: contain;
|
||||
}
|
||||
|
||||
.price-container p.plan-type {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.price-container .plan-type img {
|
||||
width: 45px;
|
||||
}
|
||||
|
||||
.price-container p.price {
|
||||
font-size: 18px;
|
||||
margin-top: -15p;
|
||||
}
|
||||
}
|
11
Assets/WebsiteAssets/images/apple-icon.svg
Normal file
@@ -0,0 +1,11 @@
|
||||
<svg width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0)">
|
||||
<path d="M22.6857 0C20.9264 0.121687 18.8701 1.24781 17.6718 2.71423C16.5787 4.04454 15.6795 6.0204 16.0301 7.94058C17.9523 8.00039 19.9385 6.84746 21.0894 5.35628C22.166 3.96823 22.9807 2.00474 22.6857 0Z" fill="white"/>
|
||||
<path d="M29.6386 11.2903C27.9494 9.17211 25.5755 7.94287 23.3335 7.94287C20.3739 7.94287 19.1219 9.3598 17.0656 9.3598C14.9454 9.3598 13.3346 7.947 10.7751 7.947C8.26088 7.947 5.58377 9.48355 3.88634 12.1112C1.50004 15.8113 1.90842 22.768 5.77558 28.6936C7.15951 30.8138 9.0075 33.198 11.4247 33.2187C13.5759 33.2393 14.1823 31.8389 17.0966 31.8244C20.0109 31.8079 20.5636 33.2372 22.7107 33.2145C25.13 33.196 27.079 30.5539 28.4629 28.4337C29.455 26.9136 29.8242 26.1485 30.5935 24.4325C24.998 22.3019 24.1008 14.3448 29.6386 11.2903Z" fill="white"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0">
|
||||
<rect width="33" height="33" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1015 B |
BIN
Assets/WebsiteAssets/images/basic-icon.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
Assets/WebsiteAssets/images/business-icon.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
Assets/WebsiteAssets/images/business-top-left-bg.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Assets/WebsiteAssets/images/business-top-right-bg.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
Assets/WebsiteAssets/images/carousel-btn.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
Assets/WebsiteAssets/images/check-icon.png
Normal file
After Width: | Height: | Size: 339 B |
BIN
Assets/WebsiteAssets/images/check-white-icon.png
Normal file
After Width: | Height: | Size: 215 B |
BIN
Assets/WebsiteAssets/images/close-icon.png
Normal file
After Width: | Height: | Size: 310 B |
BIN
Assets/WebsiteAssets/images/customise-it-bg.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
Assets/WebsiteAssets/images/customise-it-img.png
Normal file
After Width: | Height: | Size: 44 KiB |
4
Assets/WebsiteAssets/images/download-icon.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.9997 13.75L14.6663 10.0833M10.9997 13.75V2.75V13.75ZM10.9997 13.75L7.33301 10.0833L10.9997 13.75Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M1.83301 15.5833L2.40226 17.8612C2.5014 18.2578 2.73026 18.6099 3.05248 18.8615C3.37469 19.1131 3.77177 19.2499 4.18059 19.2499H17.8188C18.2276 19.2499 18.6247 19.1131 18.9469 18.8615C19.2691 18.6099 19.498 18.2578 19.5971 17.8612L20.1663 15.5833" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 638 B |
BIN
Assets/WebsiteAssets/images/favicon.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
Assets/WebsiteAssets/images/frame-blue-lg.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
Assets/WebsiteAssets/images/frame-blue.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
Assets/WebsiteAssets/images/frame-yellow-lg.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
Assets/WebsiteAssets/images/frame-yellow.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Assets/WebsiteAssets/images/hear-from-client-bg-mobile.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
Assets/WebsiteAssets/images/home-top-img.png
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
Assets/WebsiteAssets/images/in-the-press-img-left.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
Assets/WebsiteAssets/images/in-the-press-img-right.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
Assets/WebsiteAssets/images/in-the-press-img.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
Assets/WebsiteAssets/images/in-the-press-its-foss.png
Normal file
After Width: | Height: | Size: 69 KiB |
BIN
Assets/WebsiteAssets/images/in-the-press-life-hacker.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
Assets/WebsiteAssets/images/in-the-press-life-pcmag.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
Assets/WebsiteAssets/images/in-the-web-bg.png
Normal file
After Width: | Height: | Size: 54 KiB |
10
Assets/WebsiteAssets/images/linux-icon.svg
Normal file
After Width: | Height: | Size: 6.7 KiB |
15
Assets/WebsiteAssets/images/logo-text-blue.svg
Normal file
After Width: | Height: | Size: 149 KiB |
15
Assets/WebsiteAssets/images/logo-text.svg
Normal file
After Width: | Height: | Size: 149 KiB |
6
Assets/WebsiteAssets/images/microsoft-icon.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<svg width="33" height="33" viewBox="0 0 33 33" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="17.5312" y="17.5312" width="10.3125" height="10.3125" fill="white"/>
|
||||
<rect x="5.15625" y="17.5312" width="10.3125" height="10.3125" fill="white"/>
|
||||
<rect x="17.5312" y="5.15625" width="10.3125" height="10.3125" fill="white"/>
|
||||
<rect x="5.15625" y="5.15625" width="10.3125" height="10.3125" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 421 B |
BIN
Assets/WebsiteAssets/images/mobile-menu-black-open-icon.png
Normal file
After Width: | Height: | Size: 177 B |
BIN
Assets/WebsiteAssets/images/mobile-menu-open-icon.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
Assets/WebsiteAssets/images/multimedia-note-bg.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
Assets/WebsiteAssets/images/multimedia-notes-img.png
Normal file
After Width: | Height: | Size: 743 KiB |
BIN
Assets/WebsiteAssets/images/price-bg-left.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
Assets/WebsiteAssets/images/price-bg-right.png
Normal file
After Width: | Height: | Size: 194 KiB |
BIN
Assets/WebsiteAssets/images/pro-icon.png
Normal file
After Width: | Height: | Size: 962 B |
BIN
Assets/WebsiteAssets/images/profile-black-icon.png
Normal file
After Width: | Height: | Size: 450 B |
BIN
Assets/WebsiteAssets/images/profile-blue.png
Normal file
After Width: | Height: | Size: 434 B |
BIN
Assets/WebsiteAssets/images/profile-icon.png
Normal file
After Width: | Height: | Size: 271 B |
BIN
Assets/WebsiteAssets/images/save-web-bg-mobile.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
Assets/WebsiteAssets/images/save-web-bg.png
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
Assets/WebsiteAssets/images/save-web-bg2.png
Normal file
After Width: | Height: | Size: 64 KiB |
BIN
Assets/WebsiteAssets/images/save-web-img.png
Normal file
After Width: | Height: | Size: 602 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 72 KiB |
BIN
Assets/WebsiteAssets/images/top-bg-mobile.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
Assets/WebsiteAssets/images/top-left-bg.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
Assets/WebsiteAssets/images/top-right-bg.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
Assets/WebsiteAssets/images/transparent-bg.png
Normal file
After Width: | Height: | Size: 188 B |
BIN
Assets/WebsiteAssets/images/uncheck-icon.png
Normal file
After Width: | Height: | Size: 268 B |
BIN
Assets/WebsiteAssets/images/work-together-bg.png
Normal file
After Width: | Height: | Size: 127 KiB |
BIN
Assets/WebsiteAssets/images/work-together-img.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
Assets/WebsiteAssets/images/your-data-bg-mobile.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
Assets/WebsiteAssets/images/your-data-img.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
Assets/WebsiteAssets/images/your-note-bg-mobile.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
Assets/WebsiteAssets/images/your-note-bg.png
Normal file
After Width: | Height: | Size: 71 KiB |
5016
Assets/WebsiteAssets/js/bootstrap5.0.2.js
vendored
Normal file
7
Assets/WebsiteAssets/js/bootstrap5.0.2.min.js
vendored
Normal file
2
Assets/WebsiteAssets/js/jquery-3.6.0.min.js
vendored
Normal file
91
Assets/WebsiteAssets/js/script.js
Normal file
@@ -0,0 +1,91 @@
|
||||
function getOs() {
|
||||
if (navigator.appVersion.indexOf("Win")!=-1) return "windows";
|
||||
if (navigator.appVersion.indexOf("Mac")!=-1) return "macOs";
|
||||
if (navigator.appVersion.indexOf("X11")!=-1) return "linux";
|
||||
if (navigator.appVersion.indexOf("Linux")!=-1) return "linux";
|
||||
return null;
|
||||
}
|
||||
|
||||
function getFilename(path) {
|
||||
if (!path) return '';
|
||||
const s = path.split('/');
|
||||
return s.pop();
|
||||
}
|
||||
|
||||
function getMobileOs() {
|
||||
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
|
||||
|
||||
// Windows Phone must come first because its UA also contains "Android"
|
||||
if (/windows phone/i.test(userAgent)) {
|
||||
return "windowsPhone";
|
||||
}
|
||||
|
||||
if (/android/i.test(userAgent)) {
|
||||
return "android";
|
||||
}
|
||||
|
||||
// iOS detection from: http://stackoverflow.com/a/9039885/177710
|
||||
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
|
||||
return "ios";
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
function setupMobileMenu() {
|
||||
$("#open-menu-mobile").click(function () {
|
||||
$("#menu-mobile").animate({ "margin-right": "0px" }, 300);
|
||||
});
|
||||
|
||||
$("#close-menu-mobile").click(function () {
|
||||
$("#menu-mobile").animate({ "margin-right": "-300px" }, 300);
|
||||
});
|
||||
}
|
||||
|
||||
function setupDownloadPage() {
|
||||
if (!$('.page-download').length) return;
|
||||
|
||||
const downloadLinks = {};
|
||||
|
||||
$('.page-download .get-it-desktop a').each(function() {
|
||||
const href = $(this).attr('href');
|
||||
|
||||
if (href.indexOf('-Setup') > 0) downloadLinks['windows'] = href;
|
||||
if (href.indexOf('.dmg') > 0) downloadLinks['macOs'] = href;
|
||||
if (href.indexOf('.AppImage') > 0) downloadLinks['linux'] = href;
|
||||
});
|
||||
|
||||
$('.page-download .get-it-desktop').hide();
|
||||
|
||||
$('.page-download .download-click-here').click((event) => {
|
||||
event.preventDefault();
|
||||
$('.page-download .get-it-desktop').show(500);
|
||||
});
|
||||
|
||||
const mobileOs = getMobileOs();
|
||||
|
||||
if (mobileOs) {
|
||||
$('.page-download .intro').hide();
|
||||
} else {
|
||||
const os = getOs();
|
||||
if (!os || !downloadLinks[os]) {
|
||||
// If we don't know, display the section to manually download the app
|
||||
$('.page-download .get-it-desktop').show();
|
||||
} else if (os === 'linux') {
|
||||
// If it's Linux, the user should probably install it using the
|
||||
// install script so we redirect to the install section
|
||||
window.location = 'https://joplinapp.org/help/#desktop-applications';
|
||||
} else {
|
||||
// Otherwise, start the download
|
||||
const downloadLink = downloadLinks[os];
|
||||
$('.downloaded-filename').text(getFilename(downloadLink));
|
||||
window.location = downloadLink;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
setupMobileMenu();
|
||||
setupDownloadPage();
|
||||
});
|
406
Assets/WebsiteAssets/templates/front.mustache
Normal file
@@ -0,0 +1,406 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="{{imageBaseUrl}}/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Jopli website" />
|
||||
<link rel="stylesheet" href="{{cssBaseUrl}}/fontawesome-all.min.css?t={{buildTime}}">
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{cssBaseUrl}}/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<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="{{cssBaseUrl}}/site.css?t={{buildTime}}" as="style" />
|
||||
<title>Joplin</title>
|
||||
</head>
|
||||
<body class="front-page website-env-{{env}}">
|
||||
<div class="container-fluid" id="main-container">
|
||||
|
||||
{{#navbar}}
|
||||
{{> navbar}}
|
||||
{{/navbar}}
|
||||
|
||||
<div class="blue-bg" id="top-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<div class="alert alert-danger alert-env-dev" role="alert">
|
||||
Running in {{env}} mode!
|
||||
</div>
|
||||
|
||||
<h1 class="text-center">
|
||||
Free your <span class="frame-bg frame-bg-blue">notes</span>
|
||||
</h1>
|
||||
<p class="text-center" id="top-section-text">
|
||||
Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device.
|
||||
</p>
|
||||
<br />
|
||||
<br />
|
||||
<p class="text-center">
|
||||
<a href="{{baseUrl}}/download/" class="button-link btn-blue download-button">Download the app</a>
|
||||
{{#showJoplinCloudLinks}}
|
||||
<a href="{{baseUrl}}/plans/" class="button-link btn-trans plans-button">Sign up with Joplin Cloud</a>
|
||||
{{/showJoplinCloudLinks}}
|
||||
</p>
|
||||
<img
|
||||
src="{{imageBaseUrl}}/home-top-img.png"
|
||||
alt=""
|
||||
class="img-fluid img-center"
|
||||
id="top-section-img"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="multimedia-notes-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-5 col-xxl-6">
|
||||
<div class="ml-30 ml-mobile-0">
|
||||
<h2 id="multimedia-title">
|
||||
<span class="frame-bg frame-bg-yellow">Multimedia</span> notes
|
||||
</h2>
|
||||
<p id="multimedia-text">
|
||||
Images, videos, PDFs and audio files are supported. Create
|
||||
math expressions and diagrams directly from the app. Take
|
||||
photos with the mobile app and save them to a note.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<a href="{{baseUrl}}/download/" class="button-link btn-blue">Download the app</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-7 col-xxl-6">
|
||||
<br class="d-block d-lg-none" />
|
||||
<br class="d-block d-lg-none" />
|
||||
<img
|
||||
src="{{imageBaseUrl}}/multimedia-notes-img.png"
|
||||
alt=""
|
||||
class="img-fluid"
|
||||
id="multimedia-notes-section-img"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#showJoplinCloudLinks}}
|
||||
<div id="work-together-section" class="gray-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-6 d-none d-md-block"></div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="ml-30 ml-mobile-0">
|
||||
<h2>Work together</h2>
|
||||
<p>
|
||||
With Joplin Cloud, share your notes with your friends, family
|
||||
or colleagues and collaborate on them.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<a href="{{baseUrl}}/plans/" class="button-link btn-blue">Try it now</a>
|
||||
</p>
|
||||
<br class="d-block d-md-none" />
|
||||
<br class="d-block d-md-none" />
|
||||
<div class="text-center">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/work-together-img.png"
|
||||
alt=""
|
||||
class="img-fluid d-block-inline d-md-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/showJoplinCloudLinks}}
|
||||
|
||||
<div id="save-web-section" class="blue-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="ml-30 ml-mobile-0">
|
||||
<h2 id="save-web-title">
|
||||
Save <span class="frame-bg frame-bg-blue">web pages</span> <br />as notes
|
||||
</h2>
|
||||
<p>
|
||||
Use the web clipper extension, available on Chrome and
|
||||
Firefox, to save web pages or take screenshots as notes.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<a href="{{baseUrl}}/clipper/" class="button-link btn-blue">Get the clipper</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<br class="d-block d-md-none" />
|
||||
<br class="d-block d-md-none" />
|
||||
<img
|
||||
src="{{imageBaseUrl}}/save-web-img.png"
|
||||
alt=""
|
||||
class="img-fluid"
|
||||
id="save-web-img"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="customise-it-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="d-none d-md-block col-md-6">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/customise-it-img.png"
|
||||
alt=""
|
||||
class="img-fluid"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<div class="ml-30 ml-mobile-0">
|
||||
<h2 id="customise-it-title">
|
||||
<span class="frame-bg frame-bg-yellow-lg">Customise</span> it
|
||||
<br />
|
||||
to your needs
|
||||
</h2>
|
||||
<p>
|
||||
Customise the app with plugins, custom themes and multiple
|
||||
text editors (Rich Text or Markdown). Or create your own
|
||||
scripts and plugins using the Extension API.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<a href="{{baseUrl}}/help/#plugins" class="button-link btn-blue">Find out more</a>
|
||||
</p>
|
||||
|
||||
<br class="d-block d-lg-none" />
|
||||
<br class="d-block d-lg-none" />
|
||||
<img
|
||||
src="{{imageBaseUrl}}/customise-it-img.png"
|
||||
alt=""
|
||||
class="img-fluid d-block d-md-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="your-note-section" class="blue-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center">
|
||||
Your notes, <span class="frame-bg frame-bg-blue-lg">everywhere</span> you are
|
||||
</h2>
|
||||
<p class="text-center" id="your-note-text">
|
||||
Access your notes from your computer, phone or tablet by synchronising with various services, including Joplin Cloud, Dropbox and OneDrive. The app is available on Windows, macOS, Linux, Android and iOS. A terminal app is also available!
|
||||
</p>
|
||||
<br />
|
||||
<br />
|
||||
<p class="text-center">
|
||||
<a href="{{baseUrl}}/download/" class="button-link btn-blue">Download it now</a>
|
||||
</p>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="your-data-section" class="gray-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<br class="d-block d-md-none" />
|
||||
<div class="ml-30 ml-mobile-0">
|
||||
<h2>100% <span class="frame-bg frame-bg-yellow-lg">your data</span></h2>
|
||||
<p>
|
||||
The app is open source and your notes are saved to an open
|
||||
format, so you'll always have access to them. Uses End-To-End Encryption (E2EE) to secure your notes and ensure no-one but
|
||||
yourself can access them.
|
||||
</p>
|
||||
<br />
|
||||
<p>
|
||||
<a href="{{baseUrl}}/e2ee/" class="button-link btn-blue">More about E2EE</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<br class="d-block d-md-none" />
|
||||
<br class="d-block d-md-none" />
|
||||
<br class="d-block d-md-none" />
|
||||
<img
|
||||
src="{{imageBaseUrl}}/your-data-img.png"
|
||||
alt=""
|
||||
class="img-fluid"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="in-the-press-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<br />
|
||||
<h2 class="text-center">
|
||||
In the <span class="frame-bg frame-bg-yellow">Press</span>
|
||||
</h2>
|
||||
<br />
|
||||
</div>
|
||||
<div class="d-none d-md-block col-3">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/in-the-press-img-left.png"
|
||||
alt=""
|
||||
class="img-fluid d-none d-md-block"
|
||||
/>
|
||||
</div>
|
||||
<div class="d-none d-md-block col-6">
|
||||
<div
|
||||
id="{{pressCarouselRegular.id}}"
|
||||
class="carousel slide d-none d-md-block"
|
||||
data-bs-ride="carousel"
|
||||
>
|
||||
{{#pressCarouselRegular}}
|
||||
{{> pressCarouselButtons}}
|
||||
{{/pressCarouselRegular}}
|
||||
<div class="carousel-inner">
|
||||
{{#pressCarouselRegular.items}}
|
||||
{{> pressCarouselItem}}
|
||||
{{/pressCarouselRegular.items}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-none d-md-block col-3">
|
||||
<div class="text-right">
|
||||
<br />
|
||||
<img
|
||||
src="{{imageBaseUrl}}/in-the-press-img-right.png"
|
||||
alt=""
|
||||
class="img-fluid d-none d-md-inline-block"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row d-block d-md-none">
|
||||
<div class="col-12">
|
||||
<div
|
||||
id="{{pressCarouselMobile.id}}"
|
||||
class="carousel slide"
|
||||
data-bs-ride="carousel"
|
||||
>
|
||||
{{#pressCarouselMobile}}
|
||||
{{> pressCarouselButtons}}
|
||||
{{/pressCarouselMobile}}
|
||||
<div class="carousel-inner">
|
||||
{{#pressCarouselMobile.items}}
|
||||
{{> pressCarouselItem}}
|
||||
{{/pressCarouselMobile.items}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="sponsors-section" class="gray-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="text-center">
|
||||
Our <span class="frame-bg frame-bg-blue-lg">sponsors</span>
|
||||
</h2>
|
||||
<p class="text-center" id="your-note-text">
|
||||
Thank you for your support!
|
||||
</p>
|
||||
<br />
|
||||
|
||||
<div class="text-center sponsors-org">
|
||||
{{#sponsors.orgs}}
|
||||
<a class="sponsor-org-item" href="{{url}}"><img title="{{title}}" src="{{imageBaseUrl}}/sponsors/{{imageName}}"></a>
|
||||
{{/sponsors.orgs}}
|
||||
</div>
|
||||
|
||||
<div class="text-center sponsors-github">
|
||||
{{#sponsors.github}}
|
||||
<div class="sponsor-github-item">
|
||||
<a href="https://github.com/{{name}}" title="{{name}}">
|
||||
<img width="50" src="https://avatars2.githubusercontent.com/u/{{id}}?s=96&v=4">
|
||||
</a>
|
||||
</div>
|
||||
{{/sponsors.github}}
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="darkblue-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3 d-none d-md-block">
|
||||
<img src="{{imageBaseUrl}}/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<a href="{{baseUrl}}">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
</a>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright © 2016-{{yyyy}} Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6">
|
||||
<p class="text-right text-center-sm right-links">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="{{baseUrl}}/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="{{jsBaseUrl}}/bootstrap5.0.2.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script
|
||||
src="{{jsBaseUrl}}/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="{{jsBaseUrl}}/script.js?t={{buildTime}}"></script>
|
||||
{{> analytics}}
|
||||
</body>
|
||||
</html>
|
114
Assets/WebsiteAssets/templates/main-new.mustache
Normal file
@@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
!!! WARNING !!!
|
||||
|
||||
This file was auto-generated from {{{sourceMarkdownFile}}} 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/{{{sourceMarkdownFile}}}
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="{{imageBaseUrl}}/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{cssBaseUrl}}/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="{{cssBaseUrl}}/fontawesome-all.min.css?t={{buildTime}}">
|
||||
<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="{{cssBaseUrl}}/site.css?t={{buildTime}}" as="style" />
|
||||
<title>{{pageTitle}}</title>
|
||||
</head>
|
||||
<body class="website-env-{{env}}">
|
||||
<div class="container-fluid generic-template {{pageName}}-page" id="main-container">
|
||||
|
||||
{{#navbar}}
|
||||
{{> navbar}}
|
||||
{{/navbar}}
|
||||
|
||||
<div class="page-container page-{{sourceMarkdownName}}">
|
||||
<div class="container">
|
||||
<div class="row content-wrapper">
|
||||
{{#showToc}}<div id="toc">{{{tocHtml}}}</div>{{/showToc}}
|
||||
|
||||
<div class="main-content">
|
||||
<div class="alert alert-danger alert-env-dev" role="alert">
|
||||
Running in {{env}} mode!
|
||||
</div>
|
||||
{{{contentHtml}}}
|
||||
{{#showImproveThisDoc}}
|
||||
<div class="bottom-links">
|
||||
<a href="https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}">
|
||||
<i class="fab fa-github"></i> Improve this doc
|
||||
</a>
|
||||
</div>
|
||||
{{/showImproveThisDoc}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="darkblue-bg">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3 d-none d-md-block">
|
||||
<img src="{{imageBaseUrl}}/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright © 2016-{{yyyy}} Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="{{baseUrl}}/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="{{jsBaseUrl}}/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="{{jsBaseUrl}}/script.js?t={{buildTime}}"></script>
|
||||
|
||||
{{> analytics}}
|
||||
</body>
|
||||
</html>
|
10
Assets/WebsiteAssets/templates/partials/analytics.mustache
Normal file
@@ -0,0 +1,10 @@
|
||||
<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>
|
@@ -0,0 +1 @@
|
||||
<a href="{{baseUrl}}/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a>
|
70
Assets/WebsiteAssets/templates/partials/navbar.mustache
Normal file
@@ -0,0 +1,70 @@
|
||||
<div class="{{#isFrontPage}}navbar-frontpage blue-bg{{/isFrontPage}} {{^isFrontPage}}navbar-main white-bg{{/isFrontPage}}" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="{{baseUrl}}/">
|
||||
<img
|
||||
src="{{#isFrontPage}}{{imageBaseUrl}}/logo-text.svg{{/isFrontPage}}{{^isFrontPage}}{{imageBaseUrl}}/logo-text-blue.svg{{/isFrontPage}}"
|
||||
alt=""
|
||||
id="top-logo"
|
||||
width="180"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-9 text-right d-none d-md-block">
|
||||
<a href="{{baseUrl}}/help/" class="fw500">Help</a>
|
||||
<a href="{{forumUrl}}" class="fw500">Forum</a>
|
||||
{{#showJoplinCloudLinks}}
|
||||
{{> joplinCloudButton}}
|
||||
{{/showJoplinCloudLinks}}
|
||||
{{> supportButton}}
|
||||
</div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="{{#isFrontPage}}{{imageBaseUrl}}/mobile-menu-open-icon.png{{/isFrontPage}}{{^isFrontPage}}{{imageBaseUrl}}/mobile-menu-black-open-icon.png{{/isFrontPage}}"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="{{forumUrl}}" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="{{baseUrl}}/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
<div class="menu-mobile-buttons">
|
||||
{{#showJoplinCloudLinks}}
|
||||
{{> joplinCloudButton}}
|
||||
{{/showJoplinCloudLinks}}
|
||||
{{> supportButton}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#showToc}}
|
||||
<div id="toc-mobile">{{{tocHtml}}}</div>
|
||||
{{/showToc}}
|
||||
|
||||
<div>
|
||||
<p class="light-blue mobile-menu-link-bottom text-center">
|
||||
Copyright © 2016-{{yyyy}} Laurent Cozic
|
||||
<br/>
|
||||
<a href="{{baseUrl}}/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
52
Assets/WebsiteAssets/templates/partials/plan.mustache
Normal file
@@ -0,0 +1,52 @@
|
||||
<div class="col-12 col-lg-4">
|
||||
<div class="price-container {{#featured}}price-container-blue{{/featured}}">
|
||||
<div class="price-row">
|
||||
<div class="plan-type">
|
||||
<img src="{{imageBaseUrl}}/{{iconName}}.png"/> {{title}}
|
||||
</div>
|
||||
|
||||
<div class="plan-price">
|
||||
{{price}}<sub class="per-month"> /month</sub>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#featuresOn}}
|
||||
<p><i class="fas fa-check feature feature-on"></i>{{.}}</p>
|
||||
{{/featuresOn}}
|
||||
|
||||
{{#featuresOff}}
|
||||
<p class="unchecked-text"><i class="fas fa-times feature feature-off"></i>{{.}}</p>
|
||||
{{/featuresOff}}
|
||||
|
||||
<p class="text-center subscribe-wrapper">
|
||||
<a id="subscribeButton-{{name}}" href="{{cfaUrl}}" class="button-link btn-white">{{cfaLabel}}</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
const stripePriceId = '{{{stripePriceId}}}';
|
||||
const planName = '{{{name}}}';
|
||||
const buttonId = 'subscribeButton-' + planName;
|
||||
const buttonElement = document.getElementById(buttonId);
|
||||
|
||||
if (stripePriceId) {
|
||||
function handleResult() {
|
||||
console.info('Redirected to checkout');
|
||||
}
|
||||
|
||||
buttonElement.addEventListener("click", function(evt) {
|
||||
evt.preventDefault();
|
||||
const priceId = '{{{stripePriceId}}}';
|
||||
|
||||
createCheckoutSession(priceId).then(function(data) {
|
||||
stripe.redirectToCheckout({
|
||||
sessionId: data.sessionId
|
||||
})
|
||||
.then(handleResult);
|
||||
});
|
||||
});
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</div>
|
@@ -0,0 +1,22 @@
|
||||
<div class="carousel-indicators">
|
||||
<button
|
||||
type="button"
|
||||
data-bs-target="#{{id}}"
|
||||
data-bs-slide-to="0"
|
||||
class="active"
|
||||
aria-current="true"
|
||||
aria-label="Slide 1"
|
||||
></button>
|
||||
<button
|
||||
type="button"
|
||||
data-bs-target="#{{id}}"
|
||||
data-bs-slide-to="1"
|
||||
aria-label="Slide 2"
|
||||
></button>
|
||||
<button
|
||||
type="button"
|
||||
data-bs-target="#{{id}}"
|
||||
data-bs-slide-to="2"
|
||||
aria-label="Slide 3"
|
||||
></button>
|
||||
</div>
|
@@ -0,0 +1,23 @@
|
||||
<div class="carousel-item {{active}} press-carousel" data-bs-interval="10000">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/transparent-bg.png"
|
||||
class="d-block w-100"
|
||||
alt=""
|
||||
/>
|
||||
<div class="carousel-caption">
|
||||
<img
|
||||
src="{{imageBaseUrl}}/{{imageName}}"
|
||||
alt=""
|
||||
class="img-fluid img-center photo"
|
||||
/>
|
||||
<br />
|
||||
<p class="text-center">
|
||||
“{{body}}”
|
||||
</p>
|
||||
<br />
|
||||
<p class="fw500 text-center">
|
||||
<a href="{{url}}">{{source}}</a>
|
||||
</p>
|
||||
<p class="fw400 small text-center">By {{author}}</p>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,3 @@
|
||||
<a class="button-link btn-blue sponsor-button" href="{{baseUrl}}/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a>
|
54
Assets/WebsiteAssets/templates/plans.mustache
Normal file
@@ -0,0 +1,54 @@
|
||||
<div id="plans-section" class="env-{{env}}">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-12 title-box">
|
||||
<h1 class="text-center">
|
||||
Joplin Cloud <span class="frame-bg frame-bg-yellow">plans</span>
|
||||
</h1>
|
||||
<p class="text-center sub-title">
|
||||
Joplin Cloud allows you to synchronise your notes across devices. It also lets you publish notes, and collaborate on notebooks with your friends, family or colleagues.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{{#plans.basic}}
|
||||
{{> plan}}
|
||||
{{/plans.basic}}
|
||||
|
||||
{{#plans.pro}}
|
||||
{{> plan}}
|
||||
{{/plans.pro}}
|
||||
|
||||
{{#plans.business}}
|
||||
{{> plan}}
|
||||
{{/plans.business}}
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
{{{faqHtml}}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://js.stripe.com/v3/"></script>
|
||||
|
||||
<script>
|
||||
var stripe = Stripe('{{{stripeConfig.publishableKey}}}');
|
||||
|
||||
var createCheckoutSession = function(priceId) {
|
||||
console.info('Creating Stripe session for price:', priceId);
|
||||
|
||||
return fetch("{{{stripeConfig.webhookBaseUrl}}}/stripe/createCheckoutSession", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json"
|
||||
},
|
||||
body: JSON.stringify({
|
||||
priceId: priceId
|
||||
})
|
||||
}).then(function(result) {
|
||||
return result.json();
|
||||
});
|
||||
};
|
||||
</script>
|
||||
</div>
|
@@ -25,7 +25,7 @@ Finally, when submitting a pull request, don't forget to [test your code](#autom
|
||||
|
||||
# Contributing to Joplin's translation
|
||||
|
||||
Joplin is available in multiple languages thanks to the help of its users. You can help translate Joplin to your language or keep it up to date. Please read the documentation about [Localisation](https://joplinapp.org/#localisation).
|
||||
Joplin is available in multiple languages thanks to the help of its users. You can help translate Joplin to your language or keep it up to date. Please read the documentation about [Localisation](https://joplinapp.org/help/#localisation).
|
||||
|
||||
# Contributing to Joplin's code
|
||||
|
||||
|
@@ -74,3 +74,16 @@ ENV RUNNING_IN_DOCKER=1
|
||||
EXPOSE ${APP_PORT}
|
||||
|
||||
CMD [ "npm", "--prefix", "packages/server", "start" ]
|
||||
|
||||
# Build-time metadata
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
ARG BUILD_DATE
|
||||
ARG REVISION
|
||||
ARG VERSION
|
||||
LABEL org.opencontainers.image.created="$BUILD_DATE" \
|
||||
org.opencontainers.image.title="Joplin Server" \
|
||||
org.opencontainers.image.description="Docker image for Joplin Server" \
|
||||
org.opencontainers.image.url="https://joplinapp.org/" \
|
||||
org.opencontainers.image.revision="$REVISION" \
|
||||
org.opencontainers.image.source="https://github.com/laurent22/joplin.git" \
|
||||
org.opencontainers.image.version="${VERSION}"
|
||||
|
@@ -162,11 +162,13 @@ DESKTOP=${DESKTOP,,} # convert to lower case
|
||||
|
||||
# Detect distribution environment
|
||||
DISTVER=$(lsb_release -is) && DISTVER=$DISTVER$(lsb_release -rs)
|
||||
DISTCODENAME=$(lsb_release -cs)
|
||||
#-----------------------------------------------------
|
||||
echo 'Create Desktop icon...'
|
||||
# Check for "The SUID sandbox helper binary was found, but is not configured correctly" problem.
|
||||
# It is present in Debian 10 Buster. A (temporary) patch will be applied at .desktop file
|
||||
if [ "$DISTVER" = "Debian10" ]
|
||||
# Linux Mint 4 Debbie is based on Debian 10 and requires the same param handling.
|
||||
if [ "$DISTVER" = "Debian10" ] || [ "$DISTVER" = "Linuxmint4" ] && [ "$DISTCODENAME" = "debbie" ]
|
||||
then
|
||||
SANDBOXPARAM=" --no-sandbox"
|
||||
else
|
||||
|
41
LICENSE
@@ -2,32 +2,39 @@ 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.
|
||||
|
||||
For example, packages/fork-sax contains a ISC LICENSE file, thus all files
|
||||
under the packages/fork-sax directory are licensed under ISC.
|
||||
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/app-cli does NOT contain a LICENSE file, thus all files
|
||||
under that directory are licensed under the default license, which is MIT.
|
||||
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.
|
||||
|
||||
* * *
|
||||
|
||||
Logo and Icon License
|
||||
|
||||
The Joplin logos and icons are copyright (c) Laurent Cozic, all rights reserved,
|
||||
and may not be used without a permission. If you would like to use the logos or
|
||||
icons please contact the author in order to get a permission.
|
||||
|
||||
* * *
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016-2020 Laurent Cozic
|
||||
Copyright (c) 2016-2021 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 the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
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
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
75
README.md
@@ -12,7 +12,7 @@ The notes can be [synchronised](#synchronisation) with various cloud services in
|
||||
|
||||
The application is available for Windows, Linux, macOS, Android and iOS (the terminal app also works on FreeBSD). A [Web Clipper](https://github.com/laurent22/joplin/blob/dev/readme/clipper.md), to save web pages and screenshots from your browser, is also available for [Firefox](https://addons.mozilla.org/firefox/addon/joplin-web-clipper/) and [Chrome](https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB).
|
||||
|
||||
<div class="top-screenshot"><img src="https://joplinapp.org/images/AllClients.jpg" style="max-width: 100%; max-height: 35em;"></div>
|
||||
<div class="top-screenshot"><img src="https://joplinapp.org/images/home-top-img.png" style="max-width: 100%; max-height: 35em;"></div>
|
||||
|
||||
# Installation
|
||||
|
||||
@@ -22,11 +22,11 @@ Three types of applications are available: for the **desktop** (Windows, macOS a
|
||||
|
||||
Operating System | Download
|
||||
---|---
|
||||
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v1.8.5/Joplin-Setup-1.8.5.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a>
|
||||
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v1.8.5/Joplin-1.8.5.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a>
|
||||
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v1.8.5/Joplin-1.8.5.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a>
|
||||
Windows (32 and 64-bit) | <a href='https://github.com/laurent22/joplin/releases/download/v2.1.8/Joplin-Setup-2.1.8.exe'><img alt='Get it on Windows' width="134px" src='https://joplinapp.org/images/BadgeWindows.png'/></a>
|
||||
macOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.1.8/Joplin-2.1.8.dmg'><img alt='Get it on macOS' width="134px" src='https://joplinapp.org/images/BadgeMacOS.png'/></a>
|
||||
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.1.8/Joplin-2.1.8.AppImage'><img alt='Get it on Linux' width="134px" src='https://joplinapp.org/images/BadgeLinux.png'/></a>
|
||||
|
||||
**On Windows**, you may also use the <a href='https://github.com/laurent22/joplin/releases/download/v1.8.5/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.1.8/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/v1.8.5/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://joplinapp.org/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.0.2/joplin-v2.0.2.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.0.2/joplin-v2.0.2-32bit.apk)
|
||||
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://joplinapp.org/images/BadgeAndroid.png'/></a> | or download the APK file: [64-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.1.4/joplin-v2.1.4.apk) [32-bit](https://github.com/laurent22/joplin-android/releases/download/android-v2.1.4/joplin-v2.1.4-32bit.apk)
|
||||
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://joplinapp.org/images/BadgeIOS.png'/></a> | -
|
||||
|
||||
## Terminal application
|
||||
@@ -64,7 +64,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
|
||||
|
||||
# Sponsors
|
||||
|
||||
<a href="https://seirei.ne.jp"><img title="Serei Network" width="256" src="https://joplinapp.org/images/sponsors/SeireiNetwork.png"/></a> <a href="https://usrigging.com/"><img title="U.S. Ringing Supply" width="256" src="https://joplinapp.org/images/sponsors/RingingSupply.svg"/></a> <a href=" https://tranio.com/italy/"><img title="Tranio" width="256" src="https://joplinapp.org/images/sponsors/Tranio.png"/></a>
|
||||
<a href="https://seirei.ne.jp"><img title="Serei Network" width="256" src="https://joplinapp.org/images/sponsors/SeireiNetwork.png"/></a> <a href="https://usrigging.com/"><img title="U.S. Ringing Supply" width="256" src="https://joplinapp.org/images/sponsors/RingingSupply.svg"/></a> <a href="https://tranio.com/italy/"><img title="Tranio" width="256" src="https://joplinapp.org/images/sponsors/Tranio.png"/></a>
|
||||
|
||||
* * *
|
||||
|
||||
@@ -75,7 +75,7 @@ The Web Clipper is a browser extension that allows you to save web pages and scr
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/4862947?s=96&v=4"/></br>[chrootlogin](https://github.com/chrootlogin) | <img width="50" src="https://avatars2.githubusercontent.com/u/1307332?s=96&v=4"/></br>[dbrandonjohnson](https://github.com/dbrandonjohnson) | <img width="50" src="https://avatars2.githubusercontent.com/u/1439535?s=96&v=4"/></br>[fbloise](https://github.com/fbloise) | <img width="50" src="https://avatars2.githubusercontent.com/u/38898566?s=96&v=4"/></br>[h4sh5](https://github.com/h4sh5) |
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/37297218?s=96&v=4"/></br>[Jesssullivan](https://github.com/Jesssullivan) | <img width="50" src="https://avatars2.githubusercontent.com/u/1248504?s=96&v=4"/></br>[joesfer](https://github.com/joesfer) | <img width="50" src="https://avatars2.githubusercontent.com/u/24908652?s=96&v=4"/></br>[konishi-t](https://github.com/konishi-t) | <img width="50" src="https://avatars2.githubusercontent.com/u/1788010?s=96&v=4"/></br>[maxtruxa](https://github.com/maxtruxa) |
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/29300939?s=96&v=4"/></br>[mcejp](https://github.com/mcejp) | <img width="50" src="https://avatars2.githubusercontent.com/u/1168659?s=96&v=4"/></br>[nicholashead](https://github.com/nicholashead) | <img width="50" src="https://avatars2.githubusercontent.com/u/5782817?s=96&v=4"/></br>[piccobit](https://github.com/piccobit) | <img width="50" src="https://avatars2.githubusercontent.com/u/47742?s=96&v=4"/></br>[ravenscroftj](https://github.com/ravenscroftj) |
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) | <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) | <img width="50" src="https://avatars2.githubusercontent.com/u/53228972?s=96&v=4"/></br>[wasteisobscene](https://github.com/wasteisobscene) | |
|
||||
| <img width="50" src="https://avatars2.githubusercontent.com/u/73081837?s=96&v=4"/></br>[thismarty](https://github.com/thismarty) | <img width="50" src="https://avatars2.githubusercontent.com/u/15859362?s=96&v=4"/></br>[thomasbroussard](https://github.com/thomasbroussard) | | |
|
||||
<!-- SPONSORS -->
|
||||
|
||||
<!-- TOC -->
|
||||
@@ -210,7 +210,7 @@ Joplin is also capable of exporting to a number of other formats including HTML
|
||||
|
||||
# Synchronisation
|
||||
|
||||
One of the goals of Joplin was to avoid being tied to any particular company or service, whether it is Evernote, Google or Microsoft. As such the synchronisation is designed without any hard dependency to any particular service. Most of the synchronisation process is done at an abstract level and access to external services, such as Nextcloud or Dropbox, is done via lightweight drivers. It is easy to support new services by creating simple drivers that provide a filesystem-like interface, i.e. the ability to read, write, delete and list items. It is also simple to switch from one service to another or to even sync to multiple services at once. Each note, notebook, tags, as well as the relation between items is transmitted as plain text files during synchronisation, which means the data can also be moved to a different application, can be easily backed up, inspected, etc.
|
||||
One of the goals of Joplin is to avoid being tied to any particular company or service, whether it is Evernote, Google or Microsoft. As such the synchronisation is designed without any hard dependency to any particular service. Most of the synchronisation process is done at an abstract level and access to external services, such as Nextcloud or Dropbox, is done via lightweight drivers. It is easy to support new services by creating simple drivers that provide a filesystem-like interface, i.e. the ability to read, write, delete and list items. It is also simple to switch from one service to another or to even sync to multiple services at once. Each note, notebook, tags, as well as the relation between items is transmitted as plain text files during synchronisation, which means the data can also be moved to a different application, can be easily backed up, inspected, etc.
|
||||
|
||||
Currently, synchronisation is possible with Nextcloud, WebDAV, Dropbox, OneDrive or the local filesystem. To enable synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on "Synchronise" to start a synchronisation manually. Joplin will background sync automatically after any content change is made on the local application.
|
||||
|
||||
@@ -453,6 +453,8 @@ The filters are implicitly connected by and/or connectives depending on the foll
|
||||
- To override this default behaviour, use the `any` filter, in which case the search terms will be connected by "OR" instead.
|
||||
- There's an exception for the `notebook` filters which are connected by "OR". The reason being that no note can be in multiple notebooks at once.
|
||||
|
||||
Incorrect search filters are interpreted as a phrase search, e.g. misspelled `nootebook:Example` or non-existing `https://joplinapp.org`.
|
||||
|
||||
## Search order
|
||||
|
||||
Notes are sorted by "relevance". Currently it means the notes that contain the requested terms the most times are on top. For queries with multiple terms, it also matters how close to each other the terms are. This is a bit experimental so if you notice a search query that returns unexpected results, please report it in the forum, providing as many details as possible to replicate the issue.
|
||||
@@ -520,46 +522,46 @@ Current translations:
|
||||
| Language | Po File | Last translator | Percent done
|
||||
---|---|---|---|---
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/arableague.png" width="16px"/> | Arabic | [ar](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ar.po) | [Whaell O](mailto:Whaell@protonmail.com) | 95%
|
||||
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 30%
|
||||
<img src="https://joplinapp.org/images/flags/es/basque_country.png" width="16px"/> | Basque | [eu](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/eu.po) | juan.abasolo@ehu.eus | 29%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ba.png" width="16px"/> | Bosnian (Bosna i Hercegovina) | [bs_BA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bs_BA.po) | [Derviš T.](mailto:dervis.t@pm.me) | 74%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/bg.png" width="16px"/> | Bulgarian (България) | [bg_BG](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/bg_BG.po) | | 57%
|
||||
<img src="https://joplinapp.org/images/flags/es/catalonia.png" width="16px"/> | Catalan | [ca](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ca.po) | jmontane, 2019 | 82%
|
||||
<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) | 100%
|
||||
<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) | 100%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/hr.png" width="16px"/> | Croatian (Hrvatska) | [hr_HR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hr_HR.po) | [Milo Ivir](mailto:mail@milotype.de) | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/cz.png" width="16px"/> | Czech (Česká republika) | [cs_CZ](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/cs_CZ.po) | [Michal Stanke](mailto:michal@stanke.cz) | 99%
|
||||
<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) | Mustafa Al-Dailemi (dailemi@hotmail.com)Language-Team: | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/de.png" width="16px"/> | Deutsch (Deutschland) | [de_DE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/de_DE.po) | [Atalanttore](mailto:atalanttore@googlemail.com) | 94%
|
||||
<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) | | 56%
|
||||
<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) | [Mario Campo](mailto:mario.campo@gmail.com) | 94%
|
||||
<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 | 32%
|
||||
<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 | 94%
|
||||
<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 | 98%
|
||||
<img src="https://joplinapp.org/images/flags/es/galicia.png" width="16px"/> | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 38%
|
||||
<img src="https://joplinapp.org/images/flags/es/galicia.png" width="16px"/> | Galician (España) | [gl_ES](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/gl_ES.po) | [Marcos Lans](mailto:marcoslansgarza@gmail.com) | 37%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/id.png" width="16px"/> | Indonesian (Indonesia) | [id_ID](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/id_ID.po) | [eresytter](mailto:42007357+eresytter@users.noreply.github.com) | 92%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Manuel Tassi](mailto:mannivuwiki@gmail.com) | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Szőke Sándor](mailto:mail@szokesandor.hu) | 88%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/it.png" width="16px"/> | Italiano (Italia) | [it_IT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/it_IT.po) | [Manuel Tassi](mailto:mannivuwiki@gmail.com) | 98%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/hu.png" width="16px"/> | Magyar (Magyarország) | [hu_HU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/hu_HU.po) | [Szőke Sándor](mailto:mail@szokesandor.hu) | 87%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/be.png" width="16px"/> | Nederlands (België, Belgique, Belgien) | [nl_BE](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_BE.po) | | 91%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/nl.png" width="16px"/> | Nederlands (Nederland) | [nl_NL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nl_NL.po) | [MetBril](mailto:metbril@users.noreply.github.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/no.png" width="16px"/> | Norwegian (Norge, Noreg) | [nb_NO](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/nb_NO.po) | [Mats Estensen](mailto:code@mxe.no) | 75%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ir.png" width="16px"/> | Persian | [fa](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/fa.po) | [Kourosh Firoozbakht](mailto:kourox@protonmail.com) | 71%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [konhi](mailto:hello.konhi@gmail.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Nicolas Suzuki](mailto:nicolas.suzuki@pm.me) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/pl.png" width="16px"/> | Polski (Polska) | [pl_PL](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pl_PL.po) | [konhi](mailto:hello.konhi@gmail.com) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/br.png" width="16px"/> | Português (Brasil) | [pt_BR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_BR.po) | [Nicolas Suzuki](mailto:nicolas.suzuki@pm.me) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/pt.png" width="16px"/> | Português (Portugal) | [pt_PT](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/pt_PT.po) | [Diogo Caveiro](mailto:dcaveiro@yahoo.com) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ro.png" width="16px"/> | Română | [ro](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ro.po) | [Cristi Duluta](mailto:cristi.duluta@gmail.com) | 66%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 95%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/si.png" width="16px"/> | Slovenian (Slovenija) | [sl_SI](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sl_SI.po) | [Martin Korelič](mailto:martin.korelic@protonmail.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/se.png" width="16px"/> | Svenska | [sv](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sv.po) | [Jonatan Nyberg](mailto:jonatan@autistici.org) | 61%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/th.png" width="16px"/> | Thai (ประเทศไทย) | [th_TH](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/th_TH.po) | | 45%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/vi.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 73%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/vi.png" width="16px"/> | Tiếng Việt | [vi](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/vi.po) | | 72%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/tr.png" width="16px"/> | Türkçe (Türkiye) | [tr_TR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/tr_TR.po) | [Arda Kılıçdağı](mailto:arda@kilicdagi.com) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ua.png" width="16px"/> | Ukrainian (Україна) | [uk_UA](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/uk_UA.po) | [Vyacheslav Andreykiv](mailto:vandreykiv@gmail.com) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/gr.png" width="16px"/> | Ελληνικά (Ελλάδα) | [el_GR](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/el_GR.po) | [Harris Arvanitis](mailto:xaris@tuta.io) | 96%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 94%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 71%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/ru.png" width="16px"/> | Русский (Россия) | [ru_RU](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ru_RU.po) | [Sergey Segeda](mailto:thesermanarm@gmail.com) | 93%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/rs.png" width="16px"/> | српски језик (Србија) | [sr_RS](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/sr_RS.po) | | 70%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/cn.png" width="16px"/> | 中文 (简体) | [zh_CN](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_CN.po) | [南宫小骏](mailto:jackytsu@vip.qq.com) | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [Po-Chiang Chao](mailto:BobChao%29%20%28bobchao@gmail.com) | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/tw.png" width="16px"/> | 中文 (繁體) | [zh_TW](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/zh_TW.po) | [Po-Chiang Chao](mailto:BobChao%29%20%28bobchao@gmail.com) | 98%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/jp.png" width="16px"/> | 日本語 (日本) | [ja_JP](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ja_JP.po) | [genneko](mailto:genneko217@gmail.com) | 96%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 99%
|
||||
<img src="https://joplinapp.org/images/flags/country-4x3/kr.png" width="16px"/> | 한국어 | [ko](https://github.com/laurent22/joplin/blob/dev/packages/tools/locales/ko.po) | [Ji-Hyeon Gim](mailto:potatogim@potatogim.net) | 98%
|
||||
<!-- LOCALE-TABLE-AUTO-GENERATED -->
|
||||
|
||||
# Contributors
|
||||
@@ -644,20 +646,3 @@ Thank you to everyone who've contributed to Joplin's source code!
|
||||
| <img width="50" src="https://avatars.githubusercontent.com/u/37692927?v=4"/></br>[zaoyifan](https://github.com/zaoyifan) | <img width="50" src="https://avatars.githubusercontent.com/u/10813608?v=4"/></br>[zawnk](https://github.com/zawnk) | <img width="50" src="https://avatars.githubusercontent.com/u/55245068?v=4"/></br>[zen-quo](https://github.com/zen-quo) | <img width="50" src="https://avatars.githubusercontent.com/u/23507174?v=4"/></br>[zozolina123](https://github.com/zozolina123) | <img width="50" src="https://avatars.githubusercontent.com/u/25315?v=4"/></br>[xcession](https://github.com/xcession) |
|
||||
| <img width="50" src="https://avatars.githubusercontent.com/u/34542665?v=4"/></br>[paventyang](https://github.com/paventyang) | <img width="50" src="https://avatars.githubusercontent.com/u/608014?v=4"/></br>[jackytsu](https://github.com/jackytsu) | <img width="50" src="https://avatars.githubusercontent.com/u/1308646?v=4"/></br>[zhangmx](https://github.com/zhangmx) | | |
|
||||
<!-- CONTRIBUTORS-TABLE-AUTO-GENERATED -->
|
||||
|
||||
# Known bugs
|
||||
|
||||
- Resources larger than 10 MB are not currently supported on mobile as they can crash the application.
|
||||
- Non-alphabetical characters such as Chinese or Arabic might create glitches in the terminal on Windows. This is a limitation of the current Windows console.
|
||||
|
||||
# License
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2016-2021 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 the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
22
appveyor.yml
@@ -1,22 +0,0 @@
|
||||
image: Visual Studio 2017
|
||||
|
||||
platform:
|
||||
- x64
|
||||
|
||||
# cache:
|
||||
# Not caching node_modules because appveyor doesn't restore it afterwards (not sure why)
|
||||
# - node_modules
|
||||
# - '%USERPROFILE%\.electron'
|
||||
|
||||
install:
|
||||
- ps: Install-Product node 10 x64
|
||||
|
||||
build_script:
|
||||
- npm install
|
||||
- ps: cd packages/app-desktop
|
||||
- npm run dist
|
||||
|
||||
test: off
|
||||
|
||||
# We only want to build tags
|
||||
skip_non_tags: true
|
@@ -13,3 +13,11 @@ services:
|
||||
- POSTGRES_PASSWORD=joplin
|
||||
- POSTGRES_USER=joplin
|
||||
- POSTGRES_DB=joplin
|
||||
|
||||
# Use this to specify additional Postgres
|
||||
# config parameters:
|
||||
#
|
||||
# command:
|
||||
# - "postgres"
|
||||
# - "-c"
|
||||
# - "log_min_duration_statement=0"
|
||||
|
@@ -15,7 +15,6 @@ services:
|
||||
- "5432:5432"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- APP_PORT=22300
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
- POSTGRES_DB=${POSTGRES_DATABASE}
|
||||
@@ -27,10 +26,11 @@ services:
|
||||
- "22300:22300"
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- APP_PORT=22300
|
||||
- APP_BASE_URL=${APP_BASE_URL}
|
||||
- DB_CLIENT=pg
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
- POSTGRES_PORT=${POSTGRES_PORT}
|
||||
- POSTGRES_HOST=db
|
||||
- POSTGRES_HOST=db
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
@@ -13,397 +13,257 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Getting started with plugin development | Joplin</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/bootstrap.min.css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://joplinapp.org/favicon.ico">
|
||||
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome-all.min.css"> -->
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/fork-awesome.min.css">
|
||||
<script src="https://joplinapp.org/js/jquery-3.2.1.slim.min.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: #F1F1F1;
|
||||
color: #333333;
|
||||
}
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="/images/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="/css/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?t=1626024662523">
|
||||
<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?t=1626024662523" as="style" />
|
||||
<title>Getting started with plugin development | Joplin</title>
|
||||
</head>
|
||||
<body class="website-env-prod">
|
||||
<div class="container-fluid generic-template -page" id="main-container">
|
||||
|
||||
.root {
|
||||
overflow: hidden;
|
||||
}
|
||||
<div class=" navbar-main white-bg" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="/">
|
||||
<img
|
||||
src="/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="/help/" class="fw500">Help</a>
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="/images/mobile-menu-black-open-icon.png"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
a[href^="mailto:"] {
|
||||
word-break: break-all;
|
||||
}
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="/images/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
td, th {
|
||||
padding: .8em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
<div class="menu-mobile-buttons">
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-markdown table pre {
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
padding-bottom: 0.3em;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
code {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
font-size: .85em;
|
||||
/* word-break: break-all; */
|
||||
}
|
||||
pre code {
|
||||
border: none;
|
||||
}
|
||||
pre {
|
||||
font-size: .85em;
|
||||
}
|
||||
blockquote {
|
||||
font-size: 1em;
|
||||
color: #555;
|
||||
};
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.title-icon {
|
||||
display: flex;
|
||||
height: 1em;
|
||||
}
|
||||
.title-text {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
margin-bottom: .2em;
|
||||
margin-left: .5em;
|
||||
}
|
||||
.sub-title {
|
||||
font-weight: normal;
|
||||
}
|
||||
.container {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
box-shadow: 0 10px 20px #888888;
|
||||
}
|
||||
table.screenshots {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
table.screenshots th {
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
table.screenshots th,
|
||||
table.screenshots td {
|
||||
border: 1px solid #C2C2C2;
|
||||
}
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mobile-screenshot {
|
||||
height: 40em;
|
||||
padding: 1em;
|
||||
}
|
||||
.cli-screenshot-wrapper {
|
||||
background-color: black;
|
||||
vertical-align: top;
|
||||
padding: 1em 2em 1em 1em;
|
||||
}
|
||||
.cli-screenshot {
|
||||
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
|
||||
background-color: black;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
.cli-screenshot .prompt {
|
||||
color: #48C2F0;
|
||||
}
|
||||
.top-screenshot {
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
.header {
|
||||
position: relative;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
color: white;
|
||||
background-color: #2B2B3D;
|
||||
}
|
||||
.header a h1 {
|
||||
color: white;
|
||||
}
|
||||
.header a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-bottom: 2em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.forkme {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top:0;
|
||||
}
|
||||
.nav-wrapper {
|
||||
position: relative;
|
||||
width: inherit;
|
||||
}
|
||||
.nav {
|
||||
background-color: black;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav.sticky {
|
||||
position:fixed;
|
||||
top: 0;
|
||||
width: inherit;
|
||||
box-shadow: 0 0 10px #000000;
|
||||
}
|
||||
.nav a {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
padding: .6em .9em .6em .9em;
|
||||
}
|
||||
.nav ul {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 0;
|
||||
display: table-cell;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
/* For GSoC: */
|
||||
min-width: 470px;
|
||||
}
|
||||
.nav ul li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
.nav li.selected {
|
||||
background-color: #222;
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-right {
|
||||
display: flex;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
line-height: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-right .share-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
padding: 2em;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 2em;
|
||||
color: gray;
|
||||
font-size: .9em;
|
||||
}
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.content{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 400px) {
|
||||
.nav-right .share-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container root page-plugins">
|
||||
|
||||
<div class="header">
|
||||
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplinapp.org/images/ForkMe.png"/></a>
|
||||
<a href="https://joplinapp.org"><h1 class="title"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png"><span class="title-text">Joplin</span></h1></a>
|
||||
<p class="sub-title">An open source note taking and to-do application with synchronisation capabilities</p>
|
||||
</div>
|
||||
|
||||
<div class="nav-wrapper">
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li class=""><a href="https://joplinapp.org/" title="Home"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="https://discourse.joplinapp.org" title="Forum">Forum</a></li>
|
||||
<li><a class="gsoc" href="https://joplinapp.org/gsoc2021/index/" title="Google Summer of Code 2021">GSoC 2021</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="115px" height="20px"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div id="toc"><ul>
|
||||
<div id="toc-mobile"><div><ul>
|
||||
<li>
|
||||
<p>Applications</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/desktop/">Desktop application</a></li>
|
||||
<li><a href="https://joplinapp.org/mobile/">Mobile applications</a></li>
|
||||
<li><a href="https://joplinapp.org/terminal/">Terminal application</a></li>
|
||||
<li><a href="https://joplinapp.org/clipper/">Web Clipper</a></li>
|
||||
<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="https://joplinapp.org/markdown/">Markdown Guide</a></li>
|
||||
<li><a href="https://joplinapp.org/e2ee/">How to enable end-to-end encryption</a></li>
|
||||
<li><a href="https://joplinapp.org/conflict/">What is a conflict?</a></li>
|
||||
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
||||
<li><a href="https://joplinapp.org/rich_text_editor/">About the Rich Text editor limitations</a></li>
|
||||
<li><a href="https://joplinapp.org/faq/">FAQ</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="/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Joplin API - Get Started</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/api/overview/">Joplin API Overview</a></li>
|
||||
<li><a href="https://joplinapp.org/api/get_started/plugins/">Plugin development</a></li>
|
||||
<li><a href="https://joplinapp.org/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
|
||||
<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="https://joplinapp.org/api/references/rest_api/">Data API</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_manifest/">Plugin manifest</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_theming/">Plugin theming</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="https://joplinapp.org/spec/e2ee/">End-to-end encryption spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/history/">Note History spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/sync_lock/">Sync Lock spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/plugins/">Plugin Architecture spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</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="https://joplinapp.org/gsoc2021/index/">Google Summer of Code 2021</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/ideas/">Project Ideas</a></li>
|
||||
<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="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
<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 (C) 2016-2021 Laurent Cozic
|
||||
<br/>
|
||||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="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="/faq/">FAQ</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">
|
||||
<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&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://joplinapp.org/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://joplinapp.org/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://joplinapp.org/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://joplinapp.org/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||||
<hr>
|
||||
</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>
|
||||
@@ -419,14 +279,14 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/get_started/plugins.md
|
||||
<pre><code>yo joplin
|
||||
</code></pre>
|
||||
<p>This will generate the basic scafolding 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="https://joplinapp.org/api/references/plugin_manifest/">manifest.json</a> file, which contains the various information about the plugin that was set in the inital 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>
|
||||
<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 inital 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 Development Mode. 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>
|
||||
<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>
|
||||
@@ -446,43 +306,68 @@ This should be the path to your main plugin directory, i.e. <code>path/to/your/r
|
||||
<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="https://joplinapp.org/api/tutorials/toc_plugin/">plugin tutorial</a> to learn how to use the plugin API.</li>
|
||||
<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="fa fa-github"></i> Improve this doc
|
||||
</a>
|
||||
<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-3 d-none d-md-block">
|
||||
<img src="/images/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="/images/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright (C) 2016-2021 Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="/js/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="/js/script.js?t=1626024662523"></script>
|
||||
|
||||
<script>
|
||||
function stickyHeader() {
|
||||
return; // Disabled
|
||||
|
||||
if ($(window).scrollTop() > 179) {
|
||||
$('.nav').addClass('sticky');
|
||||
} else {
|
||||
$('.nav').removeClass('sticky');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
stickyHeader();
|
||||
});
|
||||
|
||||
(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>
|
||||
|
||||
</div></div>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (C) 2016-2021 Laurent Cozic
|
||||
</div>
|
||||
</body>
|
||||
</script> </body>
|
||||
</html>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
@@ -13,404 +13,264 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/overview.md
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Extending Joplin | Joplin</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/bootstrap.min.css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://joplinapp.org/favicon.ico">
|
||||
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome-all.min.css"> -->
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/fork-awesome.min.css">
|
||||
<script src="https://joplinapp.org/js/jquery-3.2.1.slim.min.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: #F1F1F1;
|
||||
color: #333333;
|
||||
}
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="/images/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="/css/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?t=1626024662523">
|
||||
<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?t=1626024662523" as="style" />
|
||||
<title>Extending Joplin | Joplin</title>
|
||||
</head>
|
||||
<body class="website-env-prod">
|
||||
<div class="container-fluid generic-template -page" id="main-container">
|
||||
|
||||
.root {
|
||||
overflow: hidden;
|
||||
}
|
||||
<div class=" navbar-main white-bg" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="/">
|
||||
<img
|
||||
src="/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="/help/" class="fw500">Help</a>
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="/images/mobile-menu-black-open-icon.png"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
a[href^="mailto:"] {
|
||||
word-break: break-all;
|
||||
}
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="/images/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
td, th {
|
||||
padding: .8em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
<div class="menu-mobile-buttons">
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-markdown table pre {
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
padding-bottom: 0.3em;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
code {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
font-size: .85em;
|
||||
/* word-break: break-all; */
|
||||
}
|
||||
pre code {
|
||||
border: none;
|
||||
}
|
||||
pre {
|
||||
font-size: .85em;
|
||||
}
|
||||
blockquote {
|
||||
font-size: 1em;
|
||||
color: #555;
|
||||
};
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.title-icon {
|
||||
display: flex;
|
||||
height: 1em;
|
||||
}
|
||||
.title-text {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
margin-bottom: .2em;
|
||||
margin-left: .5em;
|
||||
}
|
||||
.sub-title {
|
||||
font-weight: normal;
|
||||
}
|
||||
.container {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
box-shadow: 0 10px 20px #888888;
|
||||
}
|
||||
table.screenshots {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
table.screenshots th {
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
table.screenshots th,
|
||||
table.screenshots td {
|
||||
border: 1px solid #C2C2C2;
|
||||
}
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mobile-screenshot {
|
||||
height: 40em;
|
||||
padding: 1em;
|
||||
}
|
||||
.cli-screenshot-wrapper {
|
||||
background-color: black;
|
||||
vertical-align: top;
|
||||
padding: 1em 2em 1em 1em;
|
||||
}
|
||||
.cli-screenshot {
|
||||
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
|
||||
background-color: black;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
.cli-screenshot .prompt {
|
||||
color: #48C2F0;
|
||||
}
|
||||
.top-screenshot {
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
.header {
|
||||
position: relative;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
color: white;
|
||||
background-color: #2B2B3D;
|
||||
}
|
||||
.header a h1 {
|
||||
color: white;
|
||||
}
|
||||
.header a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-bottom: 2em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.forkme {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top:0;
|
||||
}
|
||||
.nav-wrapper {
|
||||
position: relative;
|
||||
width: inherit;
|
||||
}
|
||||
.nav {
|
||||
background-color: black;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav.sticky {
|
||||
position:fixed;
|
||||
top: 0;
|
||||
width: inherit;
|
||||
box-shadow: 0 0 10px #000000;
|
||||
}
|
||||
.nav a {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
padding: .6em .9em .6em .9em;
|
||||
}
|
||||
.nav ul {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 0;
|
||||
display: table-cell;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
/* For GSoC: */
|
||||
min-width: 470px;
|
||||
}
|
||||
.nav ul li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
.nav li.selected {
|
||||
background-color: #222;
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-right {
|
||||
display: flex;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
line-height: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-right .share-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
padding: 2em;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 2em;
|
||||
color: gray;
|
||||
font-size: .9em;
|
||||
}
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.content{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 400px) {
|
||||
.nav-right .share-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container root page-overview">
|
||||
|
||||
<div class="header">
|
||||
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplinapp.org/images/ForkMe.png"/></a>
|
||||
<a href="https://joplinapp.org"><h1 class="title"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png"><span class="title-text">Joplin</span></h1></a>
|
||||
<p class="sub-title">An open source note taking and to-do application with synchronisation capabilities</p>
|
||||
</div>
|
||||
|
||||
<div class="nav-wrapper">
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li class=""><a href="https://joplinapp.org/" title="Home"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="https://discourse.joplinapp.org" title="Forum">Forum</a></li>
|
||||
<li><a class="gsoc" href="https://joplinapp.org/gsoc2021/index/" title="Google Summer of Code 2021">GSoC 2021</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="115px" height="20px"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div id="toc"><ul>
|
||||
<div id="toc-mobile"><div><ul>
|
||||
<li>
|
||||
<p>Applications</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/desktop/">Desktop application</a></li>
|
||||
<li><a href="https://joplinapp.org/mobile/">Mobile applications</a></li>
|
||||
<li><a href="https://joplinapp.org/terminal/">Terminal application</a></li>
|
||||
<li><a href="https://joplinapp.org/clipper/">Web Clipper</a></li>
|
||||
<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="https://joplinapp.org/markdown/">Markdown Guide</a></li>
|
||||
<li><a href="https://joplinapp.org/e2ee/">How to enable end-to-end encryption</a></li>
|
||||
<li><a href="https://joplinapp.org/conflict/">What is a conflict?</a></li>
|
||||
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
||||
<li><a href="https://joplinapp.org/rich_text_editor/">About the Rich Text editor limitations</a></li>
|
||||
<li><a href="https://joplinapp.org/faq/">FAQ</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="/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Joplin API - Get Started</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/api/overview/">Joplin API Overview</a></li>
|
||||
<li><a href="https://joplinapp.org/api/get_started/plugins/">Plugin development</a></li>
|
||||
<li><a href="https://joplinapp.org/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
|
||||
<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="https://joplinapp.org/api/references/rest_api/">Data API</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_manifest/">Plugin manifest</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_theming/">Plugin theming</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="https://joplinapp.org/spec/e2ee/">End-to-end encryption spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/history/">Note History spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/sync_lock/">Sync Lock spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/plugins/">Plugin Architecture spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</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="https://joplinapp.org/gsoc2021/index/">Google Summer of Code 2021</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/ideas/">Project Ideas</a></li>
|
||||
<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="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
<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 (C) 2016-2021 Laurent Cozic
|
||||
<br/>
|
||||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="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="/faq/">FAQ</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">
|
||||
<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&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://joplinapp.org/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://joplinapp.org/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://joplinapp.org/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://joplinapp.org/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||||
<hr>
|
||||
</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="https://joplinapp.org/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>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="https://joplinapp.org/api/references/rest_api/">check the documentation</a>.</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>
|
||||
@@ -426,41 +286,66 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/overview.md
|
||||
<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="https://joplinapp.org/api/get_started/plugins/">Get Started</a> page or have a look at the <a href="https://joplinapp.org/api/tutorials/toc_plugin/">TOC tutorial</a>.</p>
|
||||
<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="fa fa-github"></i> Improve this doc
|
||||
</a>
|
||||
<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-3 d-none d-md-block">
|
||||
<img src="/images/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="/images/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright (C) 2016-2021 Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="/js/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="/js/script.js?t=1626024662523"></script>
|
||||
|
||||
<script>
|
||||
function stickyHeader() {
|
||||
return; // Disabled
|
||||
|
||||
if ($(window).scrollTop() > 179) {
|
||||
$('.nav').addClass('sticky');
|
||||
} else {
|
||||
$('.nav').removeClass('sticky');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
stickyHeader();
|
||||
});
|
||||
|
||||
(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>
|
||||
|
||||
</div></div>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (C) 2016-2021 Laurent Cozic
|
||||
</div>
|
||||
</body>
|
||||
</script> </body>
|
||||
</html>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
@@ -13,433 +13,318 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/development_m
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Development mode | Joplin</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/bootstrap.min.css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://joplinapp.org/favicon.ico">
|
||||
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome-all.min.css"> -->
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/fork-awesome.min.css">
|
||||
<script src="https://joplinapp.org/js/jquery-3.2.1.slim.min.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: #F1F1F1;
|
||||
color: #333333;
|
||||
}
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="/images/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="/css/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?t=1626024662523">
|
||||
<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?t=1626024662523" as="style" />
|
||||
<title>Development mode | Joplin</title>
|
||||
</head>
|
||||
<body class="website-env-prod">
|
||||
<div class="container-fluid generic-template -page" id="main-container">
|
||||
|
||||
.root {
|
||||
overflow: hidden;
|
||||
}
|
||||
<div class=" navbar-main white-bg" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="/">
|
||||
<img
|
||||
src="/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="/help/" class="fw500">Help</a>
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="/images/mobile-menu-black-open-icon.png"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
a[href^="mailto:"] {
|
||||
word-break: break-all;
|
||||
}
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="/images/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
td, th {
|
||||
padding: .8em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
<div class="menu-mobile-buttons">
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-markdown table pre {
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
padding-bottom: 0.3em;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
code {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
font-size: .85em;
|
||||
/* word-break: break-all; */
|
||||
}
|
||||
pre code {
|
||||
border: none;
|
||||
}
|
||||
pre {
|
||||
font-size: .85em;
|
||||
}
|
||||
blockquote {
|
||||
font-size: 1em;
|
||||
color: #555;
|
||||
};
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.title-icon {
|
||||
display: flex;
|
||||
height: 1em;
|
||||
}
|
||||
.title-text {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
margin-bottom: .2em;
|
||||
margin-left: .5em;
|
||||
}
|
||||
.sub-title {
|
||||
font-weight: normal;
|
||||
}
|
||||
.container {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
box-shadow: 0 10px 20px #888888;
|
||||
}
|
||||
table.screenshots {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
table.screenshots th {
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
table.screenshots th,
|
||||
table.screenshots td {
|
||||
border: 1px solid #C2C2C2;
|
||||
}
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mobile-screenshot {
|
||||
height: 40em;
|
||||
padding: 1em;
|
||||
}
|
||||
.cli-screenshot-wrapper {
|
||||
background-color: black;
|
||||
vertical-align: top;
|
||||
padding: 1em 2em 1em 1em;
|
||||
}
|
||||
.cli-screenshot {
|
||||
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
|
||||
background-color: black;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
.cli-screenshot .prompt {
|
||||
color: #48C2F0;
|
||||
}
|
||||
.top-screenshot {
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
.header {
|
||||
position: relative;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
color: white;
|
||||
background-color: #2B2B3D;
|
||||
}
|
||||
.header a h1 {
|
||||
color: white;
|
||||
}
|
||||
.header a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-bottom: 2em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.forkme {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top:0;
|
||||
}
|
||||
.nav-wrapper {
|
||||
position: relative;
|
||||
width: inherit;
|
||||
}
|
||||
.nav {
|
||||
background-color: black;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav.sticky {
|
||||
position:fixed;
|
||||
top: 0;
|
||||
width: inherit;
|
||||
box-shadow: 0 0 10px #000000;
|
||||
}
|
||||
.nav a {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
padding: .6em .9em .6em .9em;
|
||||
}
|
||||
.nav ul {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 0;
|
||||
display: table-cell;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
/* For GSoC: */
|
||||
min-width: 470px;
|
||||
}
|
||||
.nav ul li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
.nav li.selected {
|
||||
background-color: #222;
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-right {
|
||||
display: flex;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
line-height: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-right .share-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
padding: 2em;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 2em;
|
||||
color: gray;
|
||||
font-size: .9em;
|
||||
}
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.content{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 400px) {
|
||||
.nav-right .share-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container root page-development_mode">
|
||||
|
||||
<div class="header">
|
||||
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplinapp.org/images/ForkMe.png"/></a>
|
||||
<a href="https://joplinapp.org"><h1 class="title"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png"><span class="title-text">Joplin</span></h1></a>
|
||||
<p class="sub-title">An open source note taking and to-do application with synchronisation capabilities</p>
|
||||
</div>
|
||||
|
||||
<div class="nav-wrapper">
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li class=""><a href="https://joplinapp.org/" title="Home"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="https://discourse.joplinapp.org" title="Forum">Forum</a></li>
|
||||
<li><a class="gsoc" href="https://joplinapp.org/gsoc2021/index/" title="Google Summer of Code 2021">GSoC 2021</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="115px" height="20px"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div id="toc"><ul>
|
||||
<div id="toc-mobile"><div><ul>
|
||||
<li>
|
||||
<p>Applications</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/desktop/">Desktop application</a></li>
|
||||
<li><a href="https://joplinapp.org/mobile/">Mobile applications</a></li>
|
||||
<li><a href="https://joplinapp.org/terminal/">Terminal application</a></li>
|
||||
<li><a href="https://joplinapp.org/clipper/">Web Clipper</a></li>
|
||||
<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="https://joplinapp.org/markdown/">Markdown Guide</a></li>
|
||||
<li><a href="https://joplinapp.org/e2ee/">How to enable end-to-end encryption</a></li>
|
||||
<li><a href="https://joplinapp.org/conflict/">What is a conflict?</a></li>
|
||||
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
||||
<li><a href="https://joplinapp.org/rich_text_editor/">About the Rich Text editor limitations</a></li>
|
||||
<li><a href="https://joplinapp.org/faq/">FAQ</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="/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Joplin API - Get Started</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/api/overview/">Joplin API Overview</a></li>
|
||||
<li><a href="https://joplinapp.org/api/get_started/plugins/">Plugin development</a></li>
|
||||
<li><a href="https://joplinapp.org/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
|
||||
<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="https://joplinapp.org/api/references/rest_api/">Data API</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_manifest/">Plugin manifest</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_theming/">Plugin theming</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="https://joplinapp.org/spec/e2ee/">End-to-end encryption spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/history/">Note History spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/sync_lock/">Sync Lock spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/plugins/">Plugin Architecture spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</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="https://joplinapp.org/gsoc2021/index/">Google Summer of Code 2021</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/ideas/">Project Ideas</a></li>
|
||||
<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="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
<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 (C) 2016-2021 Laurent Cozic
|
||||
<br/>
|
||||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="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="/faq/">FAQ</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">
|
||||
<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&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://joplinapp.org/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://joplinapp.org/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://joplinapp.org/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://joplinapp.org/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||||
<hr>
|
||||
</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="https://joplinapp.org/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>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 > 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="fa fa-github"></i> Improve this doc
|
||||
</a>
|
||||
<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-3 d-none d-md-block">
|
||||
<img src="/images/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="/images/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright (C) 2016-2021 Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="/js/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="/js/script.js?t=1626024662523"></script>
|
||||
|
||||
<script>
|
||||
function stickyHeader() {
|
||||
return; // Disabled
|
||||
|
||||
if ($(window).scrollTop() > 179) {
|
||||
$('.nav').addClass('sticky');
|
||||
} else {
|
||||
$('.nav').removeClass('sticky');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
stickyHeader();
|
||||
});
|
||||
|
||||
(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>
|
||||
|
||||
</div></div>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (C) 2016-2021 Laurent Cozic
|
||||
</div>
|
||||
</body>
|
||||
</script> </body>
|
||||
</html>
|
||||
|
@@ -101,6 +101,7 @@
|
||||
<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>
|
||||
@@ -124,6 +125,24 @@
|
||||
</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>
|
||||
@@ -330,6 +349,9 @@
|
||||
<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>
|
||||
|
340
docs/api/references/plugin_api/classes/joplinclipboard.html
Normal file
@@ -0,0 +1,340 @@
|
||||
<!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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></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 [ 'text/plain', 'text/html' ]</p>
|
||||
</div>
|
||||
<!-- JOPLINCHANGE
|
||||
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><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></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></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>
|
@@ -68,7 +68,7 @@
|
||||
<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 update the
|
||||
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
|
||||
|
166
docs/api/references/plugin_api/enums/apptype.html
Normal file
@@ -0,0 +1,166 @@
|
||||
<!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"> = "cli"</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"> = "desktop"</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"> = "mobile"</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>
|
155
docs/api/references/plugin_api/enums/settingstorage.html
Normal file
@@ -0,0 +1,155 @@
|
||||
<!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>
|
@@ -68,12 +68,14 @@
|
||||
<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>
|
||||
@@ -81,6 +83,7 @@
|
||||
<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>
|
||||
@@ -240,7 +243,7 @@
|
||||
<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>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</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"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></div>
|
||||
<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"> => </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-type-declaration">
|
||||
@@ -248,15 +251,12 @@
|
||||
<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>id<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</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"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></li>
|
||||
<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"><</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">></span></li>
|
||||
</ul>
|
||||
<ul class="tsd-descriptions">
|
||||
<li class="tsd-description">
|
||||
<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>message: <span class="tsd-signature-type">any</span></h5>
|
||||
</li>
|
||||
@@ -362,6 +362,9 @@
|
||||
-->
|
||||
<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>
|
||||
@@ -380,12 +383,18 @@
|
||||
<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>
|
||||
|
@@ -80,6 +80,9 @@
|
||||
-->
|
||||
<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>
|
||||
@@ -98,12 +101,18 @@
|
||||
<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>
|
||||
|
@@ -95,6 +95,7 @@
|
||||
<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>
|
||||
@@ -120,7 +121,7 @@
|
||||
<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> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<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">
|
||||
@@ -237,6 +238,18 @@
|
||||
<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>
|
||||
@@ -306,6 +319,9 @@
|
||||
<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>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
@@ -13,397 +13,257 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loadin
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Plugin Loading Rules | Joplin</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/bootstrap.min.css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://joplinapp.org/favicon.ico">
|
||||
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome-all.min.css"> -->
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/fork-awesome.min.css">
|
||||
<script src="https://joplinapp.org/js/jquery-3.2.1.slim.min.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: #F1F1F1;
|
||||
color: #333333;
|
||||
}
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="/images/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="/css/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?t=1626024662523">
|
||||
<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?t=1626024662523" as="style" />
|
||||
<title>Plugin Loading Rules | Joplin</title>
|
||||
</head>
|
||||
<body class="website-env-prod">
|
||||
<div class="container-fluid generic-template -page" id="main-container">
|
||||
|
||||
.root {
|
||||
overflow: hidden;
|
||||
}
|
||||
<div class=" navbar-main white-bg" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="/">
|
||||
<img
|
||||
src="/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="/help/" class="fw500">Help</a>
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="/images/mobile-menu-black-open-icon.png"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
a[href^="mailto:"] {
|
||||
word-break: break-all;
|
||||
}
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="/images/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
td, th {
|
||||
padding: .8em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
<div class="menu-mobile-buttons">
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-markdown table pre {
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
padding-bottom: 0.3em;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
code {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
font-size: .85em;
|
||||
/* word-break: break-all; */
|
||||
}
|
||||
pre code {
|
||||
border: none;
|
||||
}
|
||||
pre {
|
||||
font-size: .85em;
|
||||
}
|
||||
blockquote {
|
||||
font-size: 1em;
|
||||
color: #555;
|
||||
};
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.title-icon {
|
||||
display: flex;
|
||||
height: 1em;
|
||||
}
|
||||
.title-text {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
margin-bottom: .2em;
|
||||
margin-left: .5em;
|
||||
}
|
||||
.sub-title {
|
||||
font-weight: normal;
|
||||
}
|
||||
.container {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
box-shadow: 0 10px 20px #888888;
|
||||
}
|
||||
table.screenshots {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
table.screenshots th {
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
table.screenshots th,
|
||||
table.screenshots td {
|
||||
border: 1px solid #C2C2C2;
|
||||
}
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mobile-screenshot {
|
||||
height: 40em;
|
||||
padding: 1em;
|
||||
}
|
||||
.cli-screenshot-wrapper {
|
||||
background-color: black;
|
||||
vertical-align: top;
|
||||
padding: 1em 2em 1em 1em;
|
||||
}
|
||||
.cli-screenshot {
|
||||
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
|
||||
background-color: black;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
.cli-screenshot .prompt {
|
||||
color: #48C2F0;
|
||||
}
|
||||
.top-screenshot {
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
.header {
|
||||
position: relative;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
color: white;
|
||||
background-color: #2B2B3D;
|
||||
}
|
||||
.header a h1 {
|
||||
color: white;
|
||||
}
|
||||
.header a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-bottom: 2em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.forkme {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top:0;
|
||||
}
|
||||
.nav-wrapper {
|
||||
position: relative;
|
||||
width: inherit;
|
||||
}
|
||||
.nav {
|
||||
background-color: black;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav.sticky {
|
||||
position:fixed;
|
||||
top: 0;
|
||||
width: inherit;
|
||||
box-shadow: 0 0 10px #000000;
|
||||
}
|
||||
.nav a {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
padding: .6em .9em .6em .9em;
|
||||
}
|
||||
.nav ul {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 0;
|
||||
display: table-cell;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
/* For GSoC: */
|
||||
min-width: 470px;
|
||||
}
|
||||
.nav ul li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
.nav li.selected {
|
||||
background-color: #222;
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-right {
|
||||
display: flex;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
line-height: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-right .share-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
padding: 2em;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 2em;
|
||||
color: gray;
|
||||
font-size: .9em;
|
||||
}
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.content{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 400px) {
|
||||
.nav-right .share-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container root page-plugin_loading_rules">
|
||||
|
||||
<div class="header">
|
||||
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplinapp.org/images/ForkMe.png"/></a>
|
||||
<a href="https://joplinapp.org"><h1 class="title"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png"><span class="title-text">Joplin</span></h1></a>
|
||||
<p class="sub-title">An open source note taking and to-do application with synchronisation capabilities</p>
|
||||
</div>
|
||||
|
||||
<div class="nav-wrapper">
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li class=""><a href="https://joplinapp.org/" title="Home"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="https://discourse.joplinapp.org" title="Forum">Forum</a></li>
|
||||
<li><a class="gsoc" href="https://joplinapp.org/gsoc2021/index/" title="Google Summer of Code 2021">GSoC 2021</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="115px" height="20px"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div id="toc"><ul>
|
||||
<div id="toc-mobile"><div><ul>
|
||||
<li>
|
||||
<p>Applications</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/desktop/">Desktop application</a></li>
|
||||
<li><a href="https://joplinapp.org/mobile/">Mobile applications</a></li>
|
||||
<li><a href="https://joplinapp.org/terminal/">Terminal application</a></li>
|
||||
<li><a href="https://joplinapp.org/clipper/">Web Clipper</a></li>
|
||||
<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="https://joplinapp.org/markdown/">Markdown Guide</a></li>
|
||||
<li><a href="https://joplinapp.org/e2ee/">How to enable end-to-end encryption</a></li>
|
||||
<li><a href="https://joplinapp.org/conflict/">What is a conflict?</a></li>
|
||||
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
||||
<li><a href="https://joplinapp.org/rich_text_editor/">About the Rich Text editor limitations</a></li>
|
||||
<li><a href="https://joplinapp.org/faq/">FAQ</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="/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Joplin API - Get Started</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/api/overview/">Joplin API Overview</a></li>
|
||||
<li><a href="https://joplinapp.org/api/get_started/plugins/">Plugin development</a></li>
|
||||
<li><a href="https://joplinapp.org/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
|
||||
<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="https://joplinapp.org/api/references/rest_api/">Data API</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_manifest/">Plugin manifest</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_theming/">Plugin theming</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="https://joplinapp.org/spec/e2ee/">End-to-end encryption spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/history/">Note History spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/sync_lock/">Sync Lock spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/plugins/">Plugin Architecture spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</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="https://joplinapp.org/gsoc2021/index/">Google Summer of Code 2021</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/ideas/">Project Ideas</a></li>
|
||||
<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="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
<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 (C) 2016-2021 Laurent Cozic
|
||||
<br/>
|
||||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="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="/faq/">FAQ</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">
|
||||
<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&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://joplinapp.org/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://joplinapp.org/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://joplinapp.org/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://joplinapp.org/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||||
<hr>
|
||||
</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>
|
||||
@@ -414,38 +274,63 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_loadin
|
||||
</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="fa fa-github"></i> Improve this doc
|
||||
</a>
|
||||
<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-3 d-none d-md-block">
|
||||
<img src="/images/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="/images/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright (C) 2016-2021 Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="/js/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="/js/script.js?t=1626024662523"></script>
|
||||
|
||||
<script>
|
||||
function stickyHeader() {
|
||||
return; // Disabled
|
||||
|
||||
if ($(window).scrollTop() > 179) {
|
||||
$('.nav').addClass('sticky');
|
||||
} else {
|
||||
$('.nav').removeClass('sticky');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
stickyHeader();
|
||||
});
|
||||
|
||||
(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>
|
||||
|
||||
</div></div>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (C) 2016-2021 Laurent Cozic
|
||||
</div>
|
||||
</body>
|
||||
</script> </body>
|
||||
</html>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
|
||||
@@ -13,400 +13,260 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manife
|
||||
|
||||
-->
|
||||
|
||||
<head>
|
||||
<title>Plugin Manifest | Joplin</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/bootstrap.min.css">
|
||||
<link rel="shortcut icon" type="image/x-icon" href="https://joplinapp.org/favicon.ico">
|
||||
<!-- <link rel="stylesheet" href="https://joplinapp.org/css/fontawesome-all.min.css"> -->
|
||||
<link rel="stylesheet" href="https://joplinapp.org/css/fork-awesome.min.css">
|
||||
<script src="https://joplinapp.org/js/jquery-3.2.1.slim.min.js"></script>
|
||||
<style>
|
||||
body {
|
||||
background-color: #F1F1F1;
|
||||
color: #333333;
|
||||
}
|
||||
<head>
|
||||
<meta
|
||||
charset="utf-8"
|
||||
http-equiv="X-UA-Compatible"
|
||||
content="IE=edge,chrome=1"
|
||||
/>
|
||||
<link rel="icon" href="/images/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="description" content="Joplin website" />
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="/css/bootstrap5.0.2.min.css"
|
||||
as="style"
|
||||
/>
|
||||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?t=1626024662523">
|
||||
<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?t=1626024662523" as="style" />
|
||||
<title>Plugin Manifest | Joplin</title>
|
||||
</head>
|
||||
<body class="website-env-prod">
|
||||
<div class="container-fluid generic-template -page" id="main-container">
|
||||
|
||||
.root {
|
||||
overflow: hidden;
|
||||
}
|
||||
<div class=" navbar-main white-bg" id="nav-section">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<a href="/">
|
||||
<img
|
||||
src="/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="/help/" class="fw500">Help</a>
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
<div class="col-9 text-right d-block d-md-none">
|
||||
<span class="pointer"
|
||||
><img
|
||||
src="/images/mobile-menu-black-open-icon.png"
|
||||
id="open-menu-mobile"
|
||||
alt=""
|
||||
/></span>
|
||||
|
||||
|
||||
a[href^="mailto:"] {
|
||||
word-break: break-all;
|
||||
}
|
||||
<div id="menu-mobile">
|
||||
<div>
|
||||
<div class="text-right">
|
||||
<img
|
||||
src="/images/close-icon.png"
|
||||
alt=""
|
||||
class="pointer"
|
||||
id="close-menu-mobile"
|
||||
/>
|
||||
</div>
|
||||
|
||||
table {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
td, th {
|
||||
padding: .8em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
<div class="text-center menu-mobile-top">
|
||||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
<div class="menu-mobile-buttons">
|
||||
<a class="button-link btn-blue donate-button" href="/donate">
|
||||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support
|
||||
</a> </div>
|
||||
</div>
|
||||
|
||||
.page-markdown table pre,
|
||||
.page-markdown table blockquote {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.page-markdown table pre {
|
||||
background-color: rgba(0,0,0,0);
|
||||
border: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
border-bottom: 1px solid #eaecef;
|
||||
padding-bottom: 0.3em;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
font-weight: 600;
|
||||
font-size: 2em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
code {
|
||||
color: black;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
font-size: .85em;
|
||||
/* word-break: break-all; */
|
||||
}
|
||||
pre code {
|
||||
border: none;
|
||||
}
|
||||
pre {
|
||||
font-size: .85em;
|
||||
}
|
||||
blockquote {
|
||||
font-size: 1em;
|
||||
color: #555;
|
||||
};
|
||||
#toc ul {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc > ul > li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#toc {
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.title-icon {
|
||||
display: flex;
|
||||
height: 1em;
|
||||
}
|
||||
.title-text {
|
||||
display: flex;
|
||||
font-weight: normal;
|
||||
margin-bottom: .2em;
|
||||
margin-left: .5em;
|
||||
}
|
||||
.sub-title {
|
||||
font-weight: normal;
|
||||
}
|
||||
.container {
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
box-shadow: 0 10px 20px #888888;
|
||||
}
|
||||
table.screenshots {
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
table.screenshots th {
|
||||
height: 3em;
|
||||
text-align: center;
|
||||
}
|
||||
table.screenshots th,
|
||||
table.screenshots td {
|
||||
border: 1px solid #C2C2C2;
|
||||
}
|
||||
img[align="left"] {
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.mobile-screenshot {
|
||||
height: 40em;
|
||||
padding: 1em;
|
||||
}
|
||||
.cli-screenshot-wrapper {
|
||||
background-color: black;
|
||||
vertical-align: top;
|
||||
padding: 1em 2em 1em 1em;
|
||||
}
|
||||
.cli-screenshot {
|
||||
font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace;
|
||||
background-color: black;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
.cli-screenshot .prompt {
|
||||
color: #48C2F0;
|
||||
}
|
||||
.top-screenshot {
|
||||
margin-top: 2em;
|
||||
text-align: center;
|
||||
}
|
||||
.header {
|
||||
position: relative;
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
color: white;
|
||||
background-color: #2B2B3D;
|
||||
}
|
||||
.header a h1 {
|
||||
color: white;
|
||||
}
|
||||
.header a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.content {
|
||||
padding-left: 2em;
|
||||
padding-right: 2em;
|
||||
padding-bottom: 2em;
|
||||
padding-top: 2em;
|
||||
}
|
||||
.forkme {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top:0;
|
||||
}
|
||||
.nav-wrapper {
|
||||
position: relative;
|
||||
width: inherit;
|
||||
}
|
||||
.nav {
|
||||
background-color: black;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav.sticky {
|
||||
position:fixed;
|
||||
top: 0;
|
||||
width: inherit;
|
||||
box-shadow: 0 0 10px #000000;
|
||||
}
|
||||
.nav a {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
padding: .6em .9em .6em .9em;
|
||||
}
|
||||
.nav ul {
|
||||
padding-left: 2em;
|
||||
margin-bottom: 0;
|
||||
display: table-cell;
|
||||
display: flex;
|
||||
width: 100%;
|
||||
/* For GSoC: */
|
||||
min-width: 470px;
|
||||
}
|
||||
.nav ul li {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
}
|
||||
.nav li.selected {
|
||||
background-color: #222;
|
||||
font-weight: bold;
|
||||
}
|
||||
.nav-right {
|
||||
display: flex;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
line-height: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-right .share-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
.footer {
|
||||
padding: 2em;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 2em;
|
||||
color: gray;
|
||||
font-size: .9em;
|
||||
}
|
||||
a.heading-anchor {
|
||||
display: inline-block;
|
||||
opacity: 0;
|
||||
width: 1.3em;
|
||||
font-size: 0.7em;
|
||||
margin-left: 0.4em;
|
||||
line-height: 1em;
|
||||
text-decoration: none;
|
||||
transition: opacity 0.3s;
|
||||
}
|
||||
a.heading-anchor:hover,
|
||||
h1:hover a.heading-anchor,
|
||||
h2:hover a.heading-anchor,
|
||||
h3:hover a.heading-anchor,
|
||||
h4:hover a.heading-anchor,
|
||||
h5:hover a.heading-anchor,
|
||||
h6:hover a.heading-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.content{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
#toc{
|
||||
display: block!important;
|
||||
align-self: flex-start;
|
||||
width: 300px;
|
||||
position: sticky; top: 20px; left: 0;
|
||||
}
|
||||
|
||||
.main{
|
||||
width: calc(100% - 300px);
|
||||
}
|
||||
}
|
||||
|
||||
.bottom-links {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
border-top: 1px solid #d4d4d4;
|
||||
margin-top: 30px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
@media all and (min-width: 400px) {
|
||||
.nav-right .share-btn {
|
||||
display: inline-block;
|
||||
}
|
||||
.nav-right .small-share-btn {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container root page-plugin_manifest">
|
||||
|
||||
<div class="header">
|
||||
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplinapp.org/images/ForkMe.png"/></a>
|
||||
<a href="https://joplinapp.org"><h1 class="title"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png"><span class="title-text">Joplin</span></h1></a>
|
||||
<p class="sub-title">An open source note taking and to-do application with synchronisation capabilities</p>
|
||||
</div>
|
||||
|
||||
<div class="nav-wrapper">
|
||||
<div class="nav">
|
||||
<ul>
|
||||
<li class=""><a href="https://joplinapp.org/" title="Home"><i class="fa fa-home"></i></a></li>
|
||||
<li><a href="https://discourse.joplinapp.org" title="Forum">Forum</a></li>
|
||||
<li><a class="gsoc" href="https://joplinapp.org/gsoc2021/index/" title="Google Summer of Code 2021">GSoC 2021</a></li>
|
||||
</ul>
|
||||
<div class="nav-right">
|
||||
<iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="115px" height="20px"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<div id="toc"><ul>
|
||||
<div id="toc-mobile"><div><ul>
|
||||
<li>
|
||||
<p>Applications</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/desktop/">Desktop application</a></li>
|
||||
<li><a href="https://joplinapp.org/mobile/">Mobile applications</a></li>
|
||||
<li><a href="https://joplinapp.org/terminal/">Terminal application</a></li>
|
||||
<li><a href="https://joplinapp.org/clipper/">Web Clipper</a></li>
|
||||
<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="https://joplinapp.org/markdown/">Markdown Guide</a></li>
|
||||
<li><a href="https://joplinapp.org/e2ee/">How to enable end-to-end encryption</a></li>
|
||||
<li><a href="https://joplinapp.org/conflict/">What is a conflict?</a></li>
|
||||
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
||||
<li><a href="https://joplinapp.org/rich_text_editor/">About the Rich Text editor limitations</a></li>
|
||||
<li><a href="https://joplinapp.org/faq/">FAQ</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="/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>Joplin API - Get Started</p>
|
||||
<ul>
|
||||
<li><a href="https://joplinapp.org/api/overview/">Joplin API Overview</a></li>
|
||||
<li><a href="https://joplinapp.org/api/get_started/plugins/">Plugin development</a></li>
|
||||
<li><a href="https://joplinapp.org/api/tutorials/toc_plugin/">Plugin tutorial</a></li>
|
||||
<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="https://joplinapp.org/api/references/rest_api/">Data API</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_manifest/">Plugin manifest</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_loading_rules/">Plugin loading rules</a></li>
|
||||
<li><a href="https://joplinapp.org/api/references/plugin_theming/">Plugin theming</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="https://joplinapp.org/spec/e2ee/">End-to-end encryption spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/history/">Note History spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/sync_lock/">Sync Lock spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/plugins/">Plugin Architecture spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/search_sorting/">Search Sorting spec</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_file_url_format/">Server: File URL Format</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_delta_sync/">Server: Delta Sync</a></li>
|
||||
<li><a href="https://joplinapp.org/spec/server_sharing/">Server: Sharing</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="https://joplinapp.org/gsoc2021/index/">Google Summer of Code 2021</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/pull_request_guidelines/">How to submit a GSoC pull request</a></li>
|
||||
<li><a href="https://joplinapp.org/gsoc2021/ideas/">Project Ideas</a></li>
|
||||
<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="https://joplinapp.org/changelog/">Changelog (Desktop App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_cli/">Changelog (CLI App)</a></li>
|
||||
<li><a href="https://joplinapp.org/changelog_server/">Changelog (Server)</a></li>
|
||||
<li><a href="https://joplinapp.org/stats/">Stats</a></li>
|
||||
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
||||
<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 (C) 2016-2021 Laurent Cozic
|
||||
<br/>
|
||||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="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="/faq/">FAQ</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">
|
||||
<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&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://joplinapp.org/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://joplinapp.org/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://joplinapp.org/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://joplinapp.org/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||||
<hr>
|
||||
</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>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
@@ -484,38 +344,63 @@ https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manife
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<div class="bottom-links">
|
||||
<a href="https://github.com/laurent22/joplin/blob/dev/readme/api/references/plugin_manifest.md">
|
||||
<i class="fa fa-github"></i> Improve this doc
|
||||
</a>
|
||||
<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-3 d-none d-md-block">
|
||||
<img src="/images/logo-text.svg" alt="" width="150" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<hr />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-6">
|
||||
<img
|
||||
src="/images/logo-text.svg"
|
||||
width="120"
|
||||
class="img-center d-block d-md-none"
|
||||
alt=""
|
||||
/>
|
||||
<br class="d-block d-md-none" />
|
||||
<p class="text-center-sm">Copyright (C) 2016-2021 Laurent Cozic</p>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 right-links">
|
||||
<p class="text-right text-center-sm">
|
||||
<a href="https://github.com/laurent22/joplin/" class="github-link"><i class="fab fa-github"></i> GitHub Repository</a>
|
||||
<a href="/privacy/">Privacy Policy</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script
|
||||
src="/js/jquery-3.6.0.min.js"
|
||||
rel="preload"
|
||||
as="script"
|
||||
></script>
|
||||
<script src="/js/script.js?t=1626024662523"></script>
|
||||
|
||||
<script>
|
||||
function stickyHeader() {
|
||||
return; // Disabled
|
||||
|
||||
if ($(window).scrollTop() > 179) {
|
||||
$('.nav').addClass('sticky');
|
||||
} else {
|
||||
$('.nav').removeClass('sticky');
|
||||
}
|
||||
}
|
||||
|
||||
$(window).scroll(function() {
|
||||
stickyHeader();
|
||||
});
|
||||
|
||||
(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>
|
||||
|
||||
</div></div>
|
||||
|
||||
<div class="footer">
|
||||
Copyright (C) 2016-2021 Laurent Cozic
|
||||
</div>
|
||||
</body>
|
||||
</script> </body>
|
||||
</html>
|
||||
|