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

Update website

This commit is contained in:
Laurent Cozic 2018-03-29 20:17:11 +01:00
parent cdfd3d9c31
commit 3a921720d6
19 changed files with 985 additions and 87 deletions

View File

@ -1,12 +1,12 @@
# Joplin
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](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) [![Donate with Bitcoin](https://en.cryptobadges.io/badge/micro/1AnbeRd5NZT1ssG93jXzaDoHwzgjQAHX3R)](https://en.cryptobadges.io/donate/1AnbeRd5NZT1ssG93jXzaDoHwzgjQAHX3R) [![Travis Build Status](https://travis-ci.org/laurent22/joplin.svg?branch=master)](https://travis-ci.org/laurent22/joplin) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/laurent22/joplin?branch=master&passingText=master%20-%20OK&svg=true)](https://ci.appveyor.com/project/laurent22/joplin)
[![Donate](https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/badges/Donate-PayPal-green.svg)](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) [![Donate with Bitcoin](https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/badges/Donate-Bitcoin.svg)](https://joplin.cozic.net/donate/#bitcoin) [![Travis Build Status](https://travis-ci.org/laurent22/joplin.svg?branch=master)](https://travis-ci.org/laurent22/joplin) [![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/laurent22/joplin?branch=master&passingText=master%20-%20OK&svg=true)](https://ci.appveyor.com/project/laurent22/joplin)
Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in [Markdown format](#markdown).
Notes exported from Evernote via .enex files [can be imported](#importing) into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.
The notes can be [synchronised](#synchronisation) with various cloud services including [Nextcloud](https://nextcloud.com/), the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.
The notes can be [synchronised](#synchronisation) with various cloud services including [Nextcloud](https://nextcloud.com/), Dropbox, OneDrive or the file system (for example with a network directory). When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.
The UI of the terminal client is built on top of the great [terminal-kit](https://github.com/cronvel/terminal-kit) library, the desktop client using [Electron](https://electronjs.org/), and the Android client front end is done using [React Native](https://facebook.github.io/react-native/).
@ -50,11 +50,33 @@ To start it, type `joplin`.
For usage information, please refer to the full [Joplin Terminal Application Documentation](https://joplin.cozic.net/terminal).
<!-- TOC -->
# Table of contents
- Applications
- [Desktop application](https://github.com/laurent22/joplin/blob/master/readme/desktop.md)
- [Mobile applications](https://github.com/laurent22/joplin/blob/master/readme/mobile.md)
- [Terminal application](https://github.com/laurent22/joplin/blob/master/readme/terminal.md)
- Support
- [How to enable end-to-end encryption](https://github.com/laurent22/joplin/blob/master/readme/e2ee.md)
- [End-to-end encryption spec](https://github.com/laurent22/joplin/blob/master/readme/spec.md)
- [How to enable debug mode](https://github.com/laurent22/joplin/blob/master/readme/debugging.md)
- About
- [Changelog](https://github.com/laurent22/joplin/blob/master/readme/changelog.md)
- [Stats](https://github.com/laurent22/joplin/blob/master/readme/stats.md)
- [Donate](https://github.com/laurent22/joplin/blob/master/readme/donate.md)
<!-- TOC -->
# Features
- Desktop, mobile and terminal applications.
- End To End Encryption (E2EE)
- Synchronisation with various services, including NextCloud, WebDAV and OneDrive. Dropbox is planned.
- Synchronisation with various services, including NextCloud, Dropbox, WebDAV and OneDrive.
- Import Enex files (Evernote export format) and Markdown files.
- Export JEX files (Joplin Export format) and raw files.
- Support notes, to-dos, tags and notebooks.
@ -105,9 +127,9 @@ Joplin can export to the JEX format (Joplin Export file), which is a tar file th
# 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 OneDrive, 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 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.
Currently, synchronisation is possible with Nextcloud and OneDrive (by default) or the local filesystem. A Dropbox one will also be available once [this React Native bug](https://github.com/facebook/react-native/issues/14445) is fixed. To setup 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.
Currently, synchronisation is possible with Nextcloud, Dropbox (by default) or the local filesystem. To setup 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.
## Nextcloud synchronisation
@ -117,13 +139,23 @@ On the **desktop application** or **mobile application**, go to the config scree
On the **terminal application**, you will need to set the `sync.target` config variable and all the `sync.5.path`, `sync.5.username` and `sync.5.password` config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:
:config sync.5.path https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin
:config sync.5.username YOUR_USERNAME
:config sync.5.password YOUR_PASSWORD
:config sync.5.path https://example.com/nextcloud/remote.php/dav/files/USERNAME/Joplin
:config sync.5.username YOUR_USERNAME
:config sync.5.password YOUR_PASSWORD
:config sync.target 5
If synchronisation does not work, please consult the logs in the app profile directory - it is often due to a misconfigured URL or password. The log should indicate what the exact issue is.
## Dropbox synchronisation
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
On the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
On the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application. It is possible to also synchronise outside of the user interface by typing `joplin sync` from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:
*/30 * * * * /path/to/joplin sync
## WebDAV synchronisation
Select the "WebDAV" synchronisation target and follow the same instructions as for Nextcloud above.
@ -142,11 +174,9 @@ WebDAV-compatible services that are known to work with Joplin.
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
On the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar. You will be asked to login to OneDrive to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).
On the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the config screen. Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
On the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive). It is possible to also synchronise outside of the user interface by typing `joplin sync` from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:
*/30 * * * * /path/to/joplin sync
On the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).
# Encryption
@ -180,17 +210,17 @@ Joplin uses and renders [Github-flavoured Markdown](https://github.com/adam-p/ma
Math expressions can be added using the [Katex notation](https://khan.github.io/KaTeX/). To add an inline equation, wrap the expression in `$EXPRESSION$`, eg. `$\sqrt{3x-1}+(1+x)^2$`. To create an expression block, wrap it as follow:
$$
EXPRESSION
$$
$$
EXPRESSION
$$
For example:
$$
f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi
$$
$$
f(x) = \int_{-\infty}^\infty
\hat f(\xi)\,e^{2 \pi i \xi x}
\,d\xi
$$
Here is an example with the Markdown and rendered result side by side:
@ -200,9 +230,9 @@ Here is an example with the Markdown and rendered result side by side:
Checkboxes can be added like so:
- [ ] Milk
- [ ] Rice
- [ ] Eggs
- [ ] Milk
- [ ] Rice
- [ ] Eggs
The checkboxes can then be ticked in the mobile and desktop applications.

View File

@ -52,6 +52,12 @@ const headerHtml = `<!doctype html>
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -175,6 +181,13 @@ const headerHtml = `<!doctype html>
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -200,8 +213,7 @@ const headerHtml = `<!doctype html>
<div class="nav">
<ul>
<li class="{{selectedHome}}"><a href="{{baseUrl}}/" title="Home"><i class="fa fa-home"></i></a></li>
<li class="{{selectedTerminal}}"><a href="{{baseUrl}}/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class="{{selectedDesktop}}"><a href="{{baseUrl}}/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -212,9 +224,13 @@ const headerHtml = `<!doctype html>
</div>
<div class="content">
{{{tocHtml}}}
`;
const footerHtml = `
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>
`;
@ -257,6 +273,8 @@ const footerHtml = `
const scriptHtml = `
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -264,6 +282,13 @@ const scriptHtml = `
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -282,47 +307,87 @@ const rootDir = dirname(__dirname);
function markdownToHtml(md) {
const renderer = new marked.Renderer();
// Remove the header because it's going to be added back as HTML
md = md.replace(/# Joplin/, '');
let output = marked(md, {
gfm: true,
break: true,
renderer: renderer,
});
//output = output.replace(/<!-- \[SCREENSHOTS\] -->/, screenshotHtml);
return headerHtml + output + scriptHtml + footerHtml;
}
function renderFileToHtml(sourcePath, targetPath, params) {
const md = fs.readFileSync(sourcePath, 'utf8');
let tocMd_ = null;
let tocHtml_ = null;
const tocRegex_ = /<!-- TOC -->([^]*)<!-- TOC -->/
function tocMd() {
if (tocMd_) return tocMd_;
const md = fs.readFileSync(rootDir + '/README.md', 'utf8');
const toc = md.match(tocRegex_);
tocMd_ = toc[1];
return tocMd_;
}
function tocHtml() {
if (tocHtml_) return tocHtml_;
const MarkdownIt = require('markdown-it');
const markdownIt = new MarkdownIt();
let md = tocMd();
md = md.replace(/# Table of contents/, '');
md = md.replace(/https:\/\/github.com\/laurent22\/joplin\/blob\/master\/readme\/(.*)\.md/g, 'https://joplin.cozic.net/$1');
tocHtml_ = markdownIt.render(md);
tocHtml_ = '<div id="toc">' + tocHtml_ + '</div>';
return tocHtml_;
}
function renderMdToHtml(md, targetPath, params) {
params.baseUrl = 'https://joplin.cozic.net';
params.imageBaseUrl = params.baseUrl + '/images';
params.tocHtml = tocHtml();
const html = Mustache.render(markdownToHtml(md), params);
fs.writeFileSync(targetPath, html);
}
function renderFileToHtml(sourcePath, targetPath, params) {
const md = fs.readFileSync(sourcePath, 'utf8');
return renderMdToHtml(md, targetPath, params);
}
function makeHomePageMd() {
let md = fs.readFileSync(rootDir + '/README.md', 'utf8');
md = md.replace(tocRegex_, '');
// Remove the header because it's going to be added back as HTML
md = md.replace(/# Joplin/, '');
return md;
}
async function main() {
renderFileToHtml(rootDir + '/README.md', rootDir + '/docs/index.html', {
selectedHome: 'selected',
});
tocMd();
renderFileToHtml(rootDir + '/readme/terminal.md', rootDir + '/docs/terminal/index.html', {
selectedTerminal: 'selected',
});
// renderFileToHtml(rootDir + '/README.md', rootDir + '/docs/index.html', {
// selectedHome: 'selected',
// });
renderFileToHtml(rootDir + '/readme/desktop.md', rootDir + '/docs/desktop/index.html', {
selectedDesktop: 'selected',
});
// renderFileToHtml(rootDir + '/readme/terminal.md', rootDir + '/docs/terminal/index.html', {
// selectedTerminal: 'selected',
// });
// renderFileToHtml(rootDir + '/readme/desktop.md', rootDir + '/docs/desktop/index.html', {
// selectedDesktop: 'selected',
// });
// let readmeMd = fs.readFileSync(rootDir + '/README.md', 'utf8');
renderMdToHtml(makeHomePageMd(), rootDir + '/docs/index.html', {});
// renderFileToHtml(rootDir + '/README.md', rootDir + '/docs/index.html', {});
renderFileToHtml(rootDir + '/readme/terminal.md', rootDir + '/docs/terminal/index.html', {});
renderFileToHtml(rootDir + '/readme/desktop.md', rootDir + '/docs/desktop/index.html', {});
renderFileToHtml(rootDir + '/readme/mobile.md', rootDir + '/docs/mobile/index.html', {});
renderFileToHtml(rootDir + '/readme/e2ee.md', rootDir + '/docs/e2ee/index.html', {});
renderFileToHtml(rootDir + '/readme/spec.md', rootDir + '/docs/spec/index.html', {});
renderFileToHtml(rootDir + '/readme/stats.md', rootDir + '/docs/stats/index.html', {});
renderFileToHtml(rootDir + '/readme/changelog.md', rootDir + '/docs/changelog/index.html', {});
renderFileToHtml(rootDir + '/readme/donate.md', rootDir + '/docs/donate/index.html', {});
}
main().catch((error) => {

View File

@ -9,6 +9,14 @@
"resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
"integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU="
},
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "1.0.3"
}
},
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
@ -17,6 +25,11 @@
"iconv-lite": "0.4.19"
}
},
"entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
"fs-extra": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
@ -59,11 +72,36 @@
"graceful-fs": "4.1.11"
}
},
"linkify-it": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
"requires": {
"uc.micro": "1.0.5"
}
},
"markdown-it": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.1.tgz",
"integrity": "sha512-CzzqSSNkFRUf9vlWvhK1awpJreMRqdCrBvZ8DIoDWTOkESMIF741UPAhuAmbyWmdiFPA6WARNhnu2M6Nrhwa+A==",
"requires": {
"argparse": "1.0.10",
"entities": "1.1.1",
"linkify-it": "2.0.3",
"mdurl": "1.0.1",
"uc.micro": "1.0.5"
}
},
"marked": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/marked/-/marked-0.3.7.tgz",
"integrity": "sha512-zBEP4qO1YQp5aXHt8S5wTiOv9i2X74V/LQL0zhUNvVaklt6Ywa6lChxIvS+ibYlCGgADwKwZFhjC3+XfpsvQvQ=="
},
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
},
"mustache": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/mustache/-/mustache-2.3.0.tgz",
@ -88,11 +126,21 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"string-padding": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-padding/-/string-padding-1.0.2.tgz",
"integrity": "sha1-OqrYVbPpc1xeQS3+chmMz5nH9I4="
},
"uc.micro": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
"integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg=="
},
"universalify": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",

View File

@ -12,6 +12,7 @@
"app-module-path": "^2.2.0",
"fs-extra": "^4.0.3",
"gettext-parser": "^1.3.0",
"markdown-it": "^8.4.1",
"marked": "^0.3.7",
"mustache": "^2.3.0",
"node-fetch": "^1.7.3",

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,7 +219,34 @@
</div>
<div class="content">
<p> changelog</p>
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="joplin-changelog">Joplin changelog</h1>
<h2 id="-v1-0-81-https-github-com-laurent22-joplin-releases-tag-v1-0-81-2018-03-28t08-13-58z"><a href="https://github.com/laurent22/joplin/releases/tag/v1.0.81">v1.0.81</a> - 2018-03-28T08:13:58Z</h2>
<ul>
<li>New: Dropbox synchronisation</li>
@ -412,6 +451,8 @@
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -419,6 +460,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -431,5 +479,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class="selected"><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,10 +219,40 @@
</div>
<div class="content">
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/DemoDesktop.png" style="max-width: 100%"></p>
<p>For general information relevant to all the applications, see also <a href="https://joplin.cozic.net">Joplin home page</a>.</p>
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -218,6 +260,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -230,5 +279,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,6 +219,33 @@
</div>
<div class="content">
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="support-joplin-development">Support Joplin development</h1>
<p>Donations to Joplin support the development of the project. Developing quality applications mostly takes time, but there are also some expenses, such as digital certificates to sign the applications, app store fees, hosting, etc. Most of all, your donation will make it possible to keep up the current development standard.</p>
<p>There are various ways to send a donation:</p>
@ -225,6 +264,8 @@
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -232,6 +273,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -244,5 +292,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,6 +219,33 @@
</div>
<div class="content">
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="about-end-to-end-encryption-e2ee-">About End-To-End Encryption (E2EE)</h1>
<p>End-to-end encryption (E2EE) is a system where only the owner of the data (i.e. notes, notebooks, tags or resources) can read it. It prevents potential eavesdroppers - including telecom providers, internet providers, and even the developers of Joplin from being able to access the data.</p>
<p>The system is designed to defeat any attempts at surveillance or tampering because no third party can decipher the data being communicated or stored.</p>
@ -230,6 +269,8 @@
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -237,6 +278,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -249,5 +297,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="115" height="20" version="1.1" viewBox="0 0 115 20">
<linearGradient id="b" x2="0" y2="100%">
<stop offset="0" stop-color="#ff9900" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<clipPath id="a">
<rect width="115" height="20" rx="3" fill="#fff"/>
</clipPath>
<g clip-path="url(#a)">
<path fill="#555" d="M0 0h69v20H0z"/>
<path fill="#ff9900" d="M69 0h115v20H69z"/>
<path fill="url(#b)" d="M0 0h115v20H0z"/>
</g>
<svg x="5" y="3" width="14" height="14" fill="#fff">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 128 128" style="enable-background:new 0 0 128 128;" xml:space="preserve">
<path d="M109.1,75.7c-0.8-5.7-3.6-10.1-8.6-13c-2.3-1.3-4.8-2.2-7.4-3.3c0.3-0.2,0.5-0.4,0.7-0.5c12.5-6.4,11.4-25.7,2.3-32.3 c-3.7-2.7-7.8-4.4-12.1-5.4c-3.1-0.7-6.2-1.2-9.4-1.7c0-5.6,0.1-13.3,0.1-19.5H63.1c-0.1,6.1-0.1,13.6-0.2,19.1c-3.3,0-6.3,0-9.4,0 c0-5.5,0.1-13,0.1-19.1H41.9c-0.1,6.2-0.1,13.9-0.2,19.4c-8-0.1-15.7-0.1-23.7-0.2c0,4.3-0.1,8.3-0.1,12.5c1.7,0,3.2,0,4.6,0.1 c1.5,0,3,0,4.4,0.1c4.1,0.3,6.2,2.6,6.2,6.6C33,55.2,32.8,72,32.6,88.7c0,3.7-1.6,5.1-5.2,5.1c-2.6,0-5.2,0-7.8,0 c-0.8,4.7-1.6,9.2-2.4,13.9c7.9,0.1,15.7,0.2,23.7,0.3c0,6-0.1,13.6-0.1,19.9h11.7c0.1-6.3,0.1-13.7,0.2-19.6 c3.3,0.1,6.3,0.2,9.4,0.3c0,6-0.1,13.3-0.1,19.4h11.7c0.1-6.3,0.1-13.7,0.2-19.5c0.4-0.1,0.7-0.1,1-0.2c5.6-0.9,11.3-1.4,16.7-2.7 c7.1-1.8,12.7-5.9,15.7-12.9C109.5,87.3,110,81.6,109.1,75.7z M53.6,32.9c7.3,0,14.4-0.6,21,2.4c4.4,1.9,6.6,5.5,6.3,9.8 c-0.3,4.6-2.9,7.9-7.6,9.4c-6.4,2.1-13.1,2-20,1.7C53.5,48.6,53.5,41,53.6,32.9z M79.1,91.3c-6.5,2.9-13.3,2.9-20.2,3 c-1.9,0-3.8-0.1-5.9-0.1c0.1-8.7,0.2-17.2,0.3-25.9c8.9,0,17.7-0.7,26,3c4.3,1.9,6.8,5.2,6.8,10.1C86.1,86.3,83.4,89.4,79.1,91.3z"/>
</svg>
</svg>
<g fill="#fff" text-anchor="left" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="22" y="15" fill="#010101" fill-opacity=".3">Donate</text>
<text x="22" y="14">Donate</text>
<text x="73" y="15" fill="#010101" fill-opacity=".3">Bitcoin</text>
<text x="73" y="14">Bitcoin</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="94" height="20"><linearGradient id="b" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="a"><rect width="94" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#a)"><path fill="#555" d="M0 0h49v20H0z"/><path fill="#97CA00" d="M49 0h45v20H49z"/><path fill="url(#b)" d="M0 0h94v20H0z"/></g><g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="110"><text x="255" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="390">Donate</text><text x="255" y="140" transform="scale(.1)" textLength="390">Donate</text><text x="705" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="350">PayPal</text><text x="705" y="140" transform="scale(.1)" textLength="350">PayPal</text></g> </svg>

After

Width:  |  Height:  |  Size: 953 B

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -194,9 +207,8 @@
<div class="nav-wrapper">
<div class="nav">
<ul>
<li class="selected"><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,10 +219,37 @@
</div>
<div class="content">
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://img.shields.io/badge/Donate-PayPal-green.svg" alt="Donate"></a> <a href="https://en.cryptobadges.io/donate/1AnbeRd5NZT1ssG93jXzaDoHwzgjQAHX3R"><img src="https://en.cryptobadges.io/badge/micro/1AnbeRd5NZT1ssG93jXzaDoHwzgjQAHX3R" alt="Donate with Bitcoin"></a> <a href="https://travis-ci.org/laurent22/joplin"><img src="https://travis-ci.org/laurent22/joplin.svg?branch=master" alt="Travis Build Status"></a> <a href="https://ci.appveyor.com/project/laurent22/joplin"><img src="https://ci.appveyor.com/api/projects/status/github/laurent22/joplin?branch=master&amp;passingText=master%20-%20OK&amp;svg=true" alt="Appveyor Build Status"></a></p>
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=E8JMYD2LQ8MMA&amp;lc=GB&amp;item_name=Joplin+Development&amp;currency_code=EUR&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/badges/Donate-PayPal-green.svg" alt="Donate"></a> <a href="https://joplin.cozic.net/donate/#bitcoin"><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/badges/Donate-Bitcoin.svg" alt="Donate with Bitcoin"></a> <a href="https://travis-ci.org/laurent22/joplin"><img src="https://travis-ci.org/laurent22/joplin.svg?branch=master" alt="Travis Build Status"></a> <a href="https://ci.appveyor.com/project/laurent22/joplin"><img src="https://ci.appveyor.com/api/projects/status/github/laurent22/joplin?branch=master&amp;passingText=master%20-%20OK&amp;svg=true" alt="Appveyor Build Status"></a></p>
<p>Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in <a href="#markdown">Markdown format</a>.</p>
<p>Notes exported from Evernote via .enex files <a href="#importing">can be imported</a> into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.</p>
<p>The notes can be <a href="#synchronisation">synchronised</a> with various cloud services including <a href="https://nextcloud.com/">Nextcloud</a>, the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.</p>
<p>The notes can be <a href="#synchronisation">synchronised</a> with various cloud services including <a href="https://nextcloud.com/">Nextcloud</a>, Dropbox, OneDrive or the file system (for example with a network directory). When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.</p>
<p>The UI of the terminal client is built on top of the great <a href="https://github.com/cronvel/terminal-kit">terminal-kit</a> library, the desktop client using <a href="https://electronjs.org/">Electron</a>, and the Android client front end is done using <a href="https://facebook.github.io/react-native/">React Native</a>.</p>
<div class="top-screenshot"><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/AllClients.jpg" style="max-width: 100%; max-height: 35em;"></div>
@ -275,7 +314,7 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
<ul>
<li>Desktop, mobile and terminal applications.</li>
<li>End To End Encryption (E2EE)</li>
<li>Synchronisation with various services, including NextCloud, WebDAV and OneDrive. Dropbox is planned.</li>
<li>Synchronisation with various services, including NextCloud, Dropbox, WebDAV and OneDrive.</li>
<li>Import Enex files (Evernote export format) and Markdown files.</li>
<li>Export JEX files (Joplin Export format) and raw files.</li>
<li>Support notes, to-dos, tags and notebooks.</li>
@ -314,8 +353,8 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
<h1 id="exporting">Exporting</h1>
<p>Joplin can export to the JEX format (Joplin Export file), which is a tar file that can contain multiple notes, notebooks, etc. This is a lossless format in that all the notes, but also metadata such as geo-location, updated time, tags, etc. are preserved. This format is convenient for backup purposes and can be re-imported into Joplin. A &quot;raw&quot; format is also available. This is the same as the JEX format except that the data is saved to a directory and each item represented by a single file.</p>
<h1 id="synchronisation">Synchronisation</h1>
<p>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 OneDrive, 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.</p>
<p>Currently, synchronisation is possible with Nextcloud and OneDrive (by default) or the local filesystem. A Dropbox one will also be available once <a href="https://github.com/facebook/react-native/issues/14445">this React Native bug</a> is fixed. To setup synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on &quot;Synchronise&quot; to start a synchronisation manually.</p>
<p>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.</p>
<p>Currently, synchronisation is possible with Nextcloud, Dropbox (by default) or the local filesystem. To setup synchronisation please follow the instructions below. After that, the application will synchronise in the background whenever it is running, or you can click on &quot;Synchronise&quot; to start a synchronisation manually.</p>
<h2 id="nextcloud-synchronisation">Nextcloud synchronisation</h2>
<p><img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/nextcloud-logo-background.png" width="100" align="left"> <a href="https://nextcloud.com/">Nextcloud</a> is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it&#39;s open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.</p>
<p>On the <strong>desktop application</strong> or <strong>mobile application</strong>, go to the config screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally <code>https://example.com/nextcloud/remote.php/webdav/Joplin</code> (<strong>make sure to create the &quot;Joplin&quot; directory in Nextcloud</strong>), and set the username and password. If it does not work, please <a href="https://github.com/laurent22/joplin/issues/61#issuecomment-373282608">see this explanation</a> for more details.</p>
@ -325,7 +364,12 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
:config sync.5.password YOUR_PASSWORD
:config sync.target 5
</code></pre><p>If synchronisation does not work, please consult the logs in the app profile directory - it is often due to a misconfigured URL or password. The log should indicate what the exact issue is.</p>
<h2 id="webdav-synchronisation">WebDAV synchronisation</h2>
<h2 id="dropbox-synchronisation">Dropbox synchronisation</h2>
<p>When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.</p>
<p>On the <strong>desktop application</strong> or <strong>mobile application</strong>, select &quot;Dropbox&quot; as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the &quot;Synchronise&quot; button in the sidebar and follow the instructions.</p>
<p>On the <strong>terminal application</strong>, to initiate the synchronisation process, type <code>:sync</code>. You will be asked to follow a link to authorise the application. It is possible to also synchronise outside of the user interface by typing <code>joplin sync</code> from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:</p>
<pre><code>*/30 * * * * /path/to/joplin sync
</code></pre><h2 id="webdav-synchronisation">WebDAV synchronisation</h2>
<p>Select the &quot;WebDAV&quot; synchronisation target and follow the same instructions as for Nextcloud above.</p>
<p>WebDAV-compatible services that are known to work with Joplin.</p>
<ul>
@ -339,10 +383,9 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
</ul>
<h2 id="onedrive-synchronisation">OneDrive synchronisation</h2>
<p>When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.</p>
<p>On the <strong>desktop application</strong> or <strong>mobile application</strong>, select &quot;OneDrive&quot; as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the &quot;Synchronise&quot; button in the sidebar. You will be asked to login to OneDrive to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).</p>
<p>On the <strong>terminal application</strong>, to initiate the synchronisation process, type <code>:sync</code>. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive). It is possible to also synchronise outside of the user interface by typing <code>joplin sync</code> from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:</p>
<pre><code>*/30 * * * * /path/to/joplin sync
</code></pre><h1 id="encryption">Encryption</h1>
<p>On the <strong>desktop application</strong> or <strong>mobile application</strong>, select &quot;OneDrive&quot; as the synchronisation target in the config screen. Then, to initiate the synchronisation process, click on the &quot;Synchronise&quot; button in the sidebar and follow the instructions.</p>
<p>On the <strong>terminal application</strong>, to initiate the synchronisation process, type <code>:sync</code>. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).</p>
<h1 id="encryption">Encryption</h1>
<p>Joplin supports end-to-end encryption (E2EE) on all the applications. E2EE is a system where only the owner of the notes, notebooks, tags or resources can read them. It prevents potential eavesdroppers - including telecom providers, internet providers, and even the developers of Joplin from being able to access the data. Please see the <a href="https://joplin.cozic.net/e2ee">End-To-End Encryption Tutorial</a> for more information about this feature and how to enable it.</p>
<p>For a more technical description, mostly relevant for development or to review the method being used, please see the <a href="https://joplin.cozic.net/spec">Encryption specification</a>.</p>
<h1 id="attachments-resources">Attachments / Resources</h1>
@ -417,14 +460,14 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/hr.png" alt=""></td>
<td>Croatian</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/hr_HR.po">hr_HR</a></td>
<td>Hrvoje Mandić <a href="&#109;&#97;&#x69;&#x6c;&#116;&#111;&#58;&#x74;&#x72;&#98;&#x75;&#104;&#111;&#x6d;&#64;&#x6e;&#101;&#x74;&#46;&#x68;&#x72;">&#x74;&#x72;&#98;&#x75;&#104;&#111;&#x6d;&#64;&#x6e;&#101;&#x74;&#46;&#x68;&#x72;</a></td>
<td>Hrvoje Mandić <a href="&#109;&#x61;&#x69;&#108;&#116;&#x6f;&#x3a;&#x74;&#114;&#x62;&#117;&#x68;&#x6f;&#109;&#x40;&#x6e;&#101;&#x74;&#46;&#104;&#x72;">&#x74;&#114;&#x62;&#117;&#x68;&#x6f;&#109;&#x40;&#x6e;&#101;&#x74;&#46;&#104;&#x72;</a></td>
<td>62%</td>
</tr>
<tr>
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cz.png" alt=""></td>
<td>Czech</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/cs_CZ.po">cs_CZ</a></td>
<td>Lukas Helebrandt <a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#108;&#x75;&#x6b;&#97;&#x73;&#x40;&#x61;&#105;&#x79;&#x61;&#46;&#99;&#122;">&#108;&#x75;&#x6b;&#97;&#x73;&#x40;&#x61;&#105;&#x79;&#x61;&#46;&#99;&#122;</a></td>
<td>Lukas Helebrandt <a href="&#109;&#x61;&#105;&#x6c;&#116;&#111;&#58;&#108;&#x75;&#107;&#97;&#115;&#x40;&#97;&#105;&#121;&#x61;&#46;&#99;&#122;">&#108;&#x75;&#107;&#97;&#115;&#x40;&#97;&#105;&#121;&#x61;&#46;&#99;&#122;</a></td>
<td>97%</td>
</tr>
<tr>
@ -438,7 +481,7 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/de.png" alt=""></td>
<td>Deutsch</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/de_DE.po">de_DE</a></td>
<td>Tobias Grasse <a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#x6d;&#97;&#105;&#108;&#64;&#x74;&#x6f;&#x62;&#105;&#97;&#x73;&#x2d;&#103;&#x72;&#97;&#x73;&#x73;&#101;&#x2e;&#x6e;&#101;&#116;">&#x6d;&#97;&#105;&#108;&#64;&#x74;&#x6f;&#x62;&#105;&#97;&#x73;&#x2d;&#103;&#x72;&#97;&#x73;&#x73;&#101;&#x2e;&#x6e;&#101;&#116;</a></td>
<td>Tobias Grasse <a href="&#x6d;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#x6d;&#x61;&#x69;&#108;&#64;&#116;&#x6f;&#98;&#x69;&#x61;&#115;&#45;&#103;&#114;&#97;&#115;&#115;&#101;&#46;&#110;&#x65;&#116;">&#x6d;&#x61;&#x69;&#108;&#64;&#116;&#x6f;&#98;&#x69;&#x61;&#115;&#45;&#103;&#114;&#97;&#115;&#115;&#101;&#46;&#110;&#x65;&#116;</a></td>
<td>96%</td>
</tr>
<tr>
@ -452,7 +495,7 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/es.png" alt=""></td>
<td>Español</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/es_ES.po">es_ES</a></td>
<td>Fernando Martín <a href="&#109;&#97;&#x69;&#108;&#x74;&#x6f;&#58;&#x66;&#x40;&#109;&#x72;&#x74;&#x6e;&#x2e;&#x65;&#115;">&#x66;&#x40;&#109;&#x72;&#x74;&#x6e;&#x2e;&#x65;&#115;</a></td>
<td>Fernando Martín <a href="&#109;&#x61;&#105;&#x6c;&#x74;&#x6f;&#58;&#x66;&#x40;&#x6d;&#114;&#x74;&#x6e;&#46;&#101;&#115;">&#x66;&#x40;&#x6d;&#114;&#x74;&#x6e;&#46;&#101;&#115;</a></td>
<td>96%</td>
</tr>
<tr>
@ -487,21 +530,21 @@ $$
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/br.png" alt=""></td>
<td>Português (Brasil)</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/pt_BR.po">pt_BR</a></td>
<td>Renato Nunes Bastos <a href="&#109;&#97;&#105;&#x6c;&#x74;&#111;&#58;&#114;&#x6e;&#x62;&#97;&#x73;&#x74;&#111;&#x73;&#64;&#103;&#x6d;&#97;&#105;&#108;&#x2e;&#x63;&#x6f;&#109;">&#114;&#x6e;&#x62;&#97;&#x73;&#x74;&#111;&#x73;&#64;&#103;&#x6d;&#97;&#105;&#108;&#x2e;&#x63;&#x6f;&#109;</a></td>
<td>Renato Nunes Bastos <a href="&#109;&#97;&#x69;&#108;&#x74;&#x6f;&#58;&#x72;&#110;&#98;&#97;&#115;&#x74;&#111;&#115;&#x40;&#103;&#x6d;&#97;&#105;&#x6c;&#x2e;&#99;&#111;&#x6d;">&#x72;&#110;&#98;&#97;&#115;&#x74;&#111;&#115;&#x40;&#103;&#x6d;&#97;&#105;&#x6c;&#x2e;&#99;&#111;&#x6d;</a></td>
<td>95%</td>
</tr>
<tr>
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/ru.png" alt=""></td>
<td>Русский</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/ru_RU.po">ru_RU</a></td>
<td>Artyom Karlov <a href="&#109;&#97;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#97;&#x72;&#x74;&#121;&#x6f;&#109;&#46;&#107;&#97;&#x72;&#108;&#111;&#118;&#64;&#x67;&#109;&#97;&#x69;&#108;&#x2e;&#99;&#111;&#109;">&#97;&#x72;&#x74;&#121;&#x6f;&#109;&#46;&#107;&#97;&#x72;&#108;&#111;&#118;&#64;&#x67;&#109;&#97;&#x69;&#108;&#x2e;&#99;&#111;&#109;</a></td>
<td>Artyom Karlov <a href="&#109;&#x61;&#x69;&#108;&#x74;&#111;&#58;&#97;&#114;&#116;&#x79;&#x6f;&#109;&#x2e;&#107;&#97;&#x72;&#108;&#111;&#118;&#x40;&#x67;&#x6d;&#97;&#x69;&#x6c;&#x2e;&#99;&#111;&#109;">&#97;&#114;&#116;&#x79;&#x6f;&#109;&#x2e;&#107;&#97;&#x72;&#108;&#111;&#118;&#x40;&#x67;&#x6d;&#97;&#x69;&#x6c;&#x2e;&#99;&#111;&#109;</a></td>
<td>96%</td>
</tr>
<tr>
<td><img src="https://raw.githubusercontent.com/stevenrskelton/flag-icon/master/png/16/country-4x3/cn.png" alt=""></td>
<td>中文 (简体)</td>
<td><a href="https://github.com/laurent22/joplin/blob/master/CliClient/locales/zh_CN.po">zh_CN</a></td>
<td>RCJacH <a href="&#x6d;&#97;&#x69;&#x6c;&#x74;&#111;&#x3a;&#x52;&#67;&#74;&#97;&#99;&#x48;&#64;&#x6f;&#117;&#x74;&#x6c;&#x6f;&#111;&#107;&#46;&#x63;&#x6f;&#109;">&#x52;&#67;&#74;&#97;&#99;&#x48;&#64;&#x6f;&#117;&#x74;&#x6c;&#x6f;&#111;&#107;&#46;&#x63;&#x6f;&#109;</a></td>
<td>RCJacH <a href="&#x6d;&#97;&#x69;&#x6c;&#116;&#x6f;&#58;&#82;&#67;&#74;&#97;&#x63;&#x48;&#64;&#111;&#117;&#x74;&#x6c;&#x6f;&#x6f;&#x6b;&#x2e;&#x63;&#x6f;&#x6d;">&#82;&#67;&#74;&#97;&#x63;&#x48;&#64;&#111;&#117;&#x74;&#x6c;&#x6f;&#x6f;&#x6b;&#x2e;&#x63;&#x6f;&#x6d;</a></td>
<td>64%</td>
</tr>
<tr>
@ -528,6 +571,8 @@ $$
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -535,6 +580,13 @@ $$
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -547,5 +599,8 @@ $$
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

285
docs/mobile/index.html Normal file
View File

@ -0,0 +1,285 @@
<!doctype html>
<html>
<head>
<title>Joplin - an open source note taking and to-do application with synchronisation capabilities</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://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
<link rel="stylesheet" href="https://opensource.keycdn.com/fontawesome/4.7.0/font-awesome.min.css" integrity="sha384-dNpIIXE8U05kAbPhy3G1cz+yZmTzA6CY8Vg/u2L9xRnHjJiAK76m2BIEaSEV+/aU" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" crossorigin="anonymous"></script>
<style>
body {
background-color: #F1F1F1;
color: #333333;
}
table {
margin-bottom: 1em;
}
td, th {
padding: .8em;
border: 1px solid #ccc;
}
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;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
.sub-title {
font-weight: bold;
font-size: 1.5em;
}
.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;
}
.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: 165px;
}
.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;
}
.share-btn-github {
display: inline-block;
}
.nav-right .small-share-btn {
display: none;
}
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@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">
<div class="header">
<a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplin.cozic.net/images/ForkMe.png"/></a>
<h1 id="joplin"><img class="title-icon" src="https://joplin.cozic.net/images/Icon512.png">oplin</h1>
<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:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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%2Fjoplin.cozic.net" 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://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<p>An Android and iOS (iPhone/iPad) applications are available from the <a href="https://joplin.cozic.net">Joplin home page</a>.</p>
<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-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,6 +219,33 @@
</div>
<div class="content">
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="encryption">Encryption</h1>
<p>Encrypted data is encoded to ASCII because encryption/decryption functions in React Native can only deal with strings. So for compatibility with all the apps we need to use the lowest common denominator.</p>
<h2 id="encrypted-data-format">Encrypted data format</h2>
@ -299,6 +338,8 @@
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -306,6 +347,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -318,5 +366,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,7 +219,34 @@
</div>
<div class="content">
<p> statistics</p>
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="joplin-statistics">Joplin statistics</h1>
<table>
<thead>
<tr>
@ -451,6 +490,8 @@
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -458,6 +499,13 @@
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -470,5 +518,8 @@
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -47,6 +47,12 @@
pre {
font-size: .85em;
}
#toc ul {
margin-bottom: 10px;
}
#toc {
padding-bottom: 1em;
}
.title-icon {
height: 2em;
}
@ -170,6 +176,13 @@
.nav-right .share-btn-github {
display: inline-block;
}
.footer {
padding-top: 1em;
border-top: 1px solid #d4d4d4;
margin-top: 2em;
color: gray;
font-size: .9em;
}
@media all and (min-width: 400px) {
.nav-right .share-btn {
display: inline-block;
@ -195,8 +208,7 @@
<div class="nav">
<ul>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li>
<li class="selected"><a href="https:&#x2F;&#x2F;joplin.cozic.net/terminal" title="Terminal"><i class="fa fa-terminal"></i></a></li>
<li class=""><a href="https:&#x2F;&#x2F;joplin.cozic.net/desktop" title="Desktop"><i class="fa fa-desktop"></i></a></li>
<li><a class="help" href="#" title="Terminal">Help</a></li>
</ul>
<div class="nav-right">
<iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&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>
@ -207,6 +219,34 @@
</div>
<div class="content">
<div id="toc"><ul>
<li>
<p>Applications</p>
<ul>
<li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li>
<li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li>
<li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li>
</ul>
</li>
<li>
<p>Support</p>
<ul>
<li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li>
<li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li>
<li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li>
</ul>
</li>
<li>
<p>About</p>
<ul>
<li><a href="https://joplin.cozic.net/changelog">Changelog</a></li>
<li><a href="https://joplin.cozic.net/stats">Stats</a></li>
<li><a href="https://joplin.cozic.net/donate">Donate</a></li>
</ul>
</li>
</ul>
</div>
<h1 id="joplin">Joplin</h1>
<p>Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified with your own text editor.</p>
<p>Notes exported from Evernote via .enex files <a href="https://joplin.cozic.net/#importing">can be imported</a> into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported.</p>
<p>The notes can be <a href="#synchronisation">synchronised</a> with various targets including the file system (for example with a network directory) or with Microsoft OneDrive. When synchronising the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.</p>
@ -296,6 +336,7 @@ sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin
</tbody>
</table>
<p>If the help is not fully visible, press <code>Tab</code> multiple times till the console is in focus and use the arrow keys or page up/down to scroll the text.</p>
<p>For general information relevant to all the applications, see also <a href="https://joplin.cozic.net">Joplin home page</a>.</p>
<h1 id="importing-notes-from-evernote">Importing notes from Evernote</h1>
<p>To import Evernote data, follow these steps:</p>
<ul>
@ -495,8 +536,9 @@ Possible keys/values:
locale Language.
Type: Enum.
Possible values: eu (Basque), hr_HR (Croatian),
de_DE (Deutsch), en_GB (English), es_ES
(Español), fr_FR (Français), it_IT (Italiano),
cs_CZ (Czech), da_DK (Dansk), de_DE (Deutsch),
en_GB (English), es_ES (Español), fr_FR
(Français), gl_ES (Galician), it_IT (Italiano),
nl_BE (Nederlands), pt_BR (Português (Brasil)),
ru_RU (Русский), zh_CN (中文 (简体)), ja_JP (日本語).
Default: &quot;en_GB&quot;
@ -546,8 +588,8 @@ Possible keys/values:
Type: Enum.
Possible values: 2 (File system), 3 (OneDrive), 4
(OneDrive Dev (For testing only)), 5 (Nextcloud),
6 (WebDAV).
Default: 3
6 (WebDAV), 7 (Dropbox).
Default: 7
sync.2.path Directory to synchronise with (absolute path).
The path to synchronise with when file system
@ -710,6 +752,8 @@ version
<script>
function stickyHeader() {
return; // Disabled
if ($(window).scrollTop() > 179) {
$('.nav').addClass('sticky');
} else {
@ -717,6 +761,13 @@ version
}
}
$('#toc').hide();
$('.help').click(function(event) {
event.preventDefault();
$('#toc').show();
});
$(window).scroll(function() {
stickyHeader();
});
@ -729,5 +780,8 @@ version
ga('send', 'pageview');
</script>
<div class="footer">
Copyright (c) 2016-2018 Laurent Cozic
</div>
</body>
</html>

View File

@ -1 +1,3 @@
<img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/DemoDesktop.png" style="max-width: 100%">
<img src="https://raw.githubusercontent.com/laurent22/joplin/master/docs/images/DemoDesktop.png" style="max-width: 100%">
For general information relevant to all the applications, see also [Joplin home page](https://joplin.cozic.net).

1
readme/mobile.md Normal file
View File

@ -0,0 +1 @@
An Android and iOS (iPhone/iPad) applications are available from the [Joplin home page](https://joplin.cozic.net).

View File

@ -0,0 +1,19 @@
# Contents
- Applications
- [Desktop application](https://github.com/laurent22/joplin/blob/master/readme/desktop.md)
- [Mobile applications](https://github.com/laurent22/joplin/blob/master/readme/mobile.md)
- [Terminal application](https://github.com/laurent22/joplin/blob/master/readme/terminal.md)
- Support
- [How to enable end-to-end encryption](https://github.com/laurent22/joplin/blob/master/readme/e2ee.md)
- [End-to-end encryption spec](https://github.com/laurent22/joplin/blob/master/readme/spec.md)
- [How to enable debug mode](https://github.com/laurent22/joplin/blob/master/readme/debugging.md)
- About
- [Changelog](https://github.com/laurent22/joplin/blob/master/readme/changelog.md)
- [Stats](https://github.com/laurent22/joplin/blob/master/readme/stats.md)
- [Donate](https://github.com/laurent22/joplin/blob/master/readme/donate.md)

View File

@ -101,6 +101,8 @@ Command | Description
If the help is not fully visible, press `Tab` multiple times till the console is in focus and use the arrow keys or page up/down to scroll the text.
For general information relevant to all the applications, see also [Joplin home page](https://joplin.cozic.net).
# Importing notes from Evernote
To import Evernote data, follow these steps:
@ -283,8 +285,9 @@ The following commands are available in [command-line mode](#command-line-mode):
locale Language.
Type: Enum.
Possible values: eu (Basque), hr_HR (Croatian),
de_DE (Deutsch), en_GB (English), es_ES
(Español), fr_FR (Français), it_IT (Italiano),
cs_CZ (Czech), da_DK (Dansk), de_DE (Deutsch),
en_GB (English), es_ES (Español), fr_FR
(Français), gl_ES (Galician), it_IT (Italiano),
nl_BE (Nederlands), pt_BR (Português (Brasil)),
ru_RU (Русский), zh_CN (中文 (简体)), ja_JP (日本語).
Default: "en_GB"
@ -334,8 +337,8 @@ The following commands are available in [command-line mode](#command-line-mode):
Type: Enum.
Possible values: 2 (File system), 3 (OneDrive), 4
(OneDrive Dev (For testing only)), 5 (Nextcloud),
6 (WebDAV).
Default: 3
6 (WebDAV), 7 (Dropbox).
Default: 7
sync.2.path Directory to synchronise with (absolute path).
The path to synchronise with when file system