mirror of
https://github.com/laurent22/joplin.git
synced 2024-12-21 09:38:01 +02:00
449 lines
19 KiB
HTML
449 lines
19 KiB
HTML
<!doctype html>
|
|
<html>
|
|
|
|
<!--
|
|
|
|
!!! WARNING !!!
|
|
|
|
This file was auto-generated from readme/faq.md and any manual change
|
|
made to it will be overwritten. To make a change to this file please modify
|
|
the source Markdown file:
|
|
|
|
https://github.com/laurent22/joplin/blob/master/readme/faq.md
|
|
|
|
-->
|
|
|
|
<head>
|
|
<title>FAQ | 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="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;
|
|
}
|
|
table {
|
|
margin-bottom: 1em;
|
|
}
|
|
td, th {
|
|
padding: .8em;
|
|
border: 1px solid #ccc;
|
|
}
|
|
|
|
.page-markdown table pre,
|
|
.page-markdown table blockquote {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.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;
|
|
}
|
|
pre code {
|
|
border: none;
|
|
}
|
|
pre {
|
|
font-size: .85em;
|
|
}
|
|
blockquote {
|
|
font-size: 1em;
|
|
color: #555;
|
|
};
|
|
#toc ul {
|
|
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: table;
|
|
width: inherit;
|
|
}
|
|
.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;
|
|
/* min-width: 250px; */
|
|
/* 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: table-cell;
|
|
width: 100%;
|
|
text-align: right;
|
|
vertical-align: middle;
|
|
line-height: 0;
|
|
}
|
|
.nav-right .share-btn {
|
|
display: none;
|
|
}
|
|
.nav-right .small-share-btn {
|
|
display: none;
|
|
}
|
|
.footer {
|
|
padding-top: 1em;
|
|
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;
|
|
}
|
|
|
|
.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 page-faq">
|
|
|
|
<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="help" href="#" title="Menu">Menu</a></li>
|
|
<li><a class="gsoc" href="https://joplinapp.org/gsoc/" title="Google Summer of Code 2020">GSoC 2020</a></li>
|
|
</ul>
|
|
<div class="nav-right">
|
|
<!--
|
|
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplinapp.org&layout=button&size=small&mobile_iframe=true&width=60&height=20&appId" width="60" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe>
|
|
<iframe class="share-btn" src="https://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fjoplinapp.org" width="62" height="20" title="Tweet" style="border: 0; overflow: hidden;"></iframe>
|
|
-->
|
|
<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="100px" height="20px"></iframe>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<div id="toc"><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>
|
|
</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/spec/">End-to-end encryption spec</a></li>
|
|
<li><a href="https://joplinapp.org/debugging/">How to enable debug mode</a></li>
|
|
<li><a href="https://joplinapp.org/api/">API documentation</a></li>
|
|
<li><a href="https://joplinapp.org/faq/">FAQ</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/stats/">Stats</a></li>
|
|
<li><a href="https://joplinapp.org/donate/">Donate</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<h1>How can I edit my note in an external text editor?<a name="how-can-i-edit-my-note-in-an-external-text-editor" href="#how-can-i-edit-my-note-in-an-external-text-editor" class="heading-anchor">🔗</a></h1>
|
|
<p>The editor command (may include arguments) defines which editor will be used to open a note. If none is provided it will try to auto-detect the default editor. If this does nothing or you want to change it for Joplin, you need to configure it in the Preferences -> Text editor command.</p>
|
|
<p>Some example configurations are: (comments after #)</p>
|
|
<p>Linux/Mac:</p>
|
|
<pre><code class="language-bash">subl -n # Opens Sublime (subl) in a new window (-n)
|
|
code -n # Opens Visual Studio Code (code) in a new window (-n)
|
|
gedit --new-window # Opens gedit (Gnome Text Editor) in a new window
|
|
xterm -e vim # Opens a new terminal and opens vim. Can be replaced with an
|
|
# alternative terminal (gnome-terminal, terminator, etc.)
|
|
# or terminal text-editor (emacs, nano, etc.)
|
|
open -a <application> # Mac only: opens a GUI application
|
|
</code></pre>
|
|
<p>Windows:</p>
|
|
<pre><code class="language-bash">subl.exe -n # Opens Sublime (subl) in a new window (-n)
|
|
code.exe -n # Opens Visual Studio Code in a new window (-n)
|
|
notepad.exe # Opens Notepad in a new window
|
|
notepad++.exe --openSession # Opens Notepad ++ in new window
|
|
</code></pre>
|
|
<p>Note that the path to directory with your editor executable must exist in your PATH variable (<a href="https://www.computerhope.com/issues/ch000549.htm">Windows</a>, <a href="https://opensource.com/article/17/6/set-path-linux">Linux/Mac</a>) If not, the full path to the executable must be provided.</p>
|
|
<h1>When I open a note in vim, the cursor is not visible<a name="when-i-open-a-note-in-vim-the-cursor-is-not-visible" href="#when-i-open-a-note-in-vim-the-cursor-is-not-visible" class="heading-anchor">🔗</a></h1>
|
|
<p>It seems to be due to the setting <code>set term=ansi</code> in .vimrc. Removing it should fix the issue. See <a href="https://github.com/laurent22/joplin/issues/147">https://github.com/laurent22/joplin/issues/147</a> for more information.</p>
|
|
<h1>All my notes got deleted after changing the WebDAV URL!<a name="all-my-notes-got-deleted-after-changing-the-webdav-url" href="#all-my-notes-got-deleted-after-changing-the-webdav-url" class="heading-anchor">🔗</a></h1>
|
|
<p>When changing the WebDAV URL, make sure that the new location has the same exact content as the old location (i.e. copy all the Joplin data over to the new location). Otherwise, if there's nothing on the new location, Joplin is going to think that you have deleted all your data and will proceed to delete it locally too. So to change the WebDAV URL, please follow these steps:</p>
|
|
<ol>
|
|
<li>Make a backup of your Joplin data in case something goes wrong. Export to a JEX archive for example.</li>
|
|
<li>Synchronise one last time all your data from a Joplin client (for example, from the desktop client)</li>
|
|
<li>Close the Joplin client.</li>
|
|
<li>On your WebDAV service, copy all the Joplin files from the old location to the new one. Make sure to also copy the <code>.resource</code> directory as it contains your images and other attachments.</li>
|
|
<li>Once it's done, open Joplin again and change the WebDAV URL.</li>
|
|
<li>Synchronise to verify that everything is working.</li>
|
|
<li>Do step 5 and 6 for all the other Joplin clients you need to sync.</li>
|
|
</ol>
|
|
<h1>How can I easily enter Markdown tags in Android?<a name="how-can-i-easily-enter-markdown-tags-in-android" href="#how-can-i-easily-enter-markdown-tags-in-android" class="heading-anchor">🔗</a></h1>
|
|
<p>You may use a special keyboard such as <a href="https://play.google.com/store/apps/details?id=kl.ime.oh&hl=en">Multiling O Keyboard</a>, which has shortcuts to create Markdown tags. <a href="https://discourse.joplinapp.org/t/android-create-new-list-item-with-enter/585/2?u=laurent">More information in this post</a>.</p>
|
|
<h1>The initial sync is very slow, how can I speed it up?<a name="the-initial-sync-is-very-slow-how-can-i-speed-it-up" href="#the-initial-sync-is-very-slow-how-can-i-speed-it-up" class="heading-anchor">🔗</a></h1>
|
|
<p>Whenever importing a large number of notes, for example from Evernote, it may take a very long time for the first sync to complete. There are various techniques to speed thing up (if you don't want to simply wait for the sync to complete), which are outlined in <a href="https://discourse.joplinapp.org/t/workaround-for-slow-initial-bulk-sync-after-evernote-import/746?u=laurent">this post</a>.</p>
|
|
<h1>Is it possible to use real file and folder names in the sync target?<a name="is-it-possible-to-use-real-file-and-folder-names-in-the-sync-target" href="#is-it-possible-to-use-real-file-and-folder-names-in-the-sync-target" class="heading-anchor">🔗</a></h1>
|
|
<p>Unfortunately it is not possible. Joplin synchronises with file systems using an open format however it does not mean the sync files are meant to be user-editable. The format is designed to be performant and reliable, not user friendly (it cannot be both), and that cannot be changed. Joplin sync directory is basically just a database.</p>
|
|
<h1>Could there be a password to restrict access to Joplin?<a name="could-there-be-a-password-to-restrict-access-to-joplin" href="#could-there-be-a-password-to-restrict-access-to-joplin" class="heading-anchor">🔗</a></h1>
|
|
<p>The end to end encryption that Joplin implements is to protect the data during transmission and on the cloud service so that only you can access it.</p>
|
|
<p>On the local device it is assumed that the data is safe due to the OS built-in security features. If additional security is needed it's always possible to put the notes on an encrypted Truecrypt drive for instance.</p>
|
|
<p>For these reasons, because the OS or yourself can easily protect the local data, no PIN or password is currently supported to access Joplin.</p>
|
|
<p>There is however an issue open about it, so pull requests are welcome: <a href="https://github.com/laurent22/joplin/issues/289">https://github.com/laurent22/joplin/issues/289</a></p>
|
|
<h1>WebDAV synchronisation is not working<a name="webdav-synchronisation-is-not-working" href="#webdav-synchronisation-is-not-working" class="heading-anchor">🔗</a></h1>
|
|
<h2>"Forbidden" error in Strato<a name="forbidden-error-in-strato" href="#forbidden-error-in-strato" class="heading-anchor">🔗</a></h2>
|
|
<p>For example:</p>
|
|
<pre><code>MKCOL .sync/: Unknown error 2 (403): <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
|
<html><head>
|
|
<title>403 Forbidden</title>
|
|
</head><body>
|
|
<h1>Forbidden</h1>
|
|
<p>You don't have permission to access /.sync/
|
|
on this server.</p>
|
|
</body></html>
|
|
</code></pre>
|
|
<p>In this case, <a href="https://github.com/laurent22/joplin/issues/309">make sure you enter the correct WebDAV URL</a>.</p>
|
|
<h2>Nextcloud sync is not working<a name="nextcloud-sync-is-not-working" href="#nextcloud-sync-is-not-working" class="heading-anchor">🔗</a></h2>
|
|
<ul>
|
|
<li>Check your username and password. <strong>Type it manually</strong> (without copying and pasting it) and try again.</li>
|
|
<li>Check the WebDAV URL - to get the correct URL, go to Nextcloud and, in the left sidebar, click on "Settings" and copy the WebDAV URL from there. <strong>Do not forget to add the folder you've created to that URL</strong>. For example, if the base the WebDAV URL is "<a href="https://example.com/nextcloud/remote.php/webdav/">https://example.com/nextcloud/remote.php/webdav/</a>" and you want the notes to be synced in the "Joplin" directory, you need to give the URL "<a href="https://example.com/nextcloud/remote.php/webdav/Joplin">https://example.com/nextcloud/remote.php/webdav/Joplin</a>" <strong>and you need to create the "Joplin" directory yourself</strong>.</li>
|
|
<li>Did you enable <strong>2FA</strong> (Multi-factor authentication) on Nextcloud? In that case, you need to <a href="https://github.com/laurent22/joplin/issues/1453#issuecomment-486640902">create a one-time password for Joplin on the Nextcloud admin interface</a>.</li>
|
|
</ul>
|
|
<h1>How can I use self-signed SSL certificates on Android?<a name="how-can-i-use-self-signed-ssl-certificates-on-android" href="#how-can-i-use-self-signed-ssl-certificates-on-android" class="heading-anchor">🔗</a></h1>
|
|
<p>If you want to serve using https but can't or don't want to use SSL certificates signed by trusted certificate authorities (like "Let's Encrypt"), it's possible to generate a custom CA and sign your certificates with it. You can generate the CA and certificates using <a href="https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309">openssl</a>, but I like to use a tool called <a href="https://github.com/FiloSottile/mkcert">mkcert</a> for it's simplicity. Finally, you have to add your CA certificate to Android settings so that Android can recognize the certificates you signed with your CA as valid (<a href="https://support.google.com/nexus/answer/2844832?hl=en-GB">link</a>).</p>
|
|
<h1>How do I restart Joplin on Windows (so that certain changes take effect)?<a name="how-do-i-restart-joplin-on-windows-so-that-certain-changes-take-effect" href="#how-do-i-restart-joplin-on-windows-so-that-certain-changes-take-effect" class="heading-anchor">🔗</a></h1>
|
|
<p>If <code>Show tray icon</code> is enabled, closing the Joplin window does not quit the application. To restart the application properly, one of the following has to be done to quit Joplin:</p>
|
|
<ul>
|
|
<li>click <code>File</code> in the menu and then click <code>Quit</code></li>
|
|
<li>right-click on the Joplin tray icon and then click <code>Exit</code></li>
|
|
</ul>
|
|
<p>Additionally the Windows Task Manager can be used to verify whether Joplin is still around.</p>
|
|
<h1>Why is it named Joplin?<a name="why-is-it-named-joplin" href="#why-is-it-named-joplin" class="heading-anchor">🔗</a></h1>
|
|
<p>The name comes from the composer and pianist <a href="https://en.wikipedia.org/wiki/Scott_Joplin">Scott Joplin</a>, which I often listen to. His name is also easy to remember and type so it fell like a good choice. And, to quote a user on Hacker News, "though Scott Joplin's ragtime musical style has a lot in common with some very informal music, his own approach was more educated, sophisticated, and precise. Every note was in its place for a reason, and he was known to prefer his pieces to be performed exactly as written. So you could say that compared to the people who came before him, his notes were more organized".</p>
|
|
|
|
<div class="bottom-links">
|
|
<a href="https://github.com/laurent22/joplin/blob/master/readme/faq.md">
|
|
<i class="fa fa-github"></i> Improve this doc
|
|
</a>
|
|
</div>
|
|
<script>
|
|
function stickyHeader() {
|
|
return; // Disabled
|
|
|
|
if ($(window).scrollTop() > 179) {
|
|
$('.nav').addClass('sticky');
|
|
} else {
|
|
$('.nav').removeClass('sticky');
|
|
}
|
|
}
|
|
|
|
$('#toc').hide();
|
|
|
|
$('.help').click(function(event) {
|
|
event.preventDefault();
|
|
$('#toc').show();
|
|
});
|
|
|
|
$(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 class="footer">
|
|
Copyright (c) 2016-2019 Laurent Cozic
|
|
</div>
|
|
</body>
|
|
</html>
|