joplin-vieweb
April 24, 2022 ยท View on GitHub
A simple web viewer for Joplin app
View on github
Purpose
I'm going to use Joplin as a notes application (instead of OneNote).
It's a long time I wanted for something like Joplin: opensource, not coupled to a web giant, and without illimited storage: storage has a price, we should pay for it.
This quick dev is to provide an online view of my Joplin notes.
It's running on a "Django server", running beside a configured & running Joplin terminal app.
A screenshot

Features and not(-yet?) features
Yes it does โค
- Protect joplin-vieweb access by login
- Display notebooks, and notes
- images
- attachments
- code syntax highlight
- Add a table of content if note contains headers
- Display tags, and notes linked.
- Joplin sync:

- Background periodic joplin sync
- Manual trigged sync, with notebooks and tag refresh
- Public link if note has public tag

- Option to number (or not) header in notes:

- Tag edition: add / remove / create tags in notes:
Once tags edited, a little reminder not to forget to synchronize Joplin:

- Checkbox list changes can be saved to notes. See this release note.
- Note edition / deletion, with support of image paste, and image / attachment drag&drop.


- Note creation

- Notebook edition: create / rename / delete

- Notes history: list of the latest notes consulted, to be able to open them quickly, or pin them:

- Tabs in notes (not displayed in joplin applications). Syntax here.

- Hyperlink preview in notes, on mouse hover:

No it doesn't (yet?) ๐
- Sort notebooks nor notes
- Move note or notebook from one notebook to another.
- No specific handling for todos.
- Search for notes or tags
Installation, configuration
-
Install Joplin terminal.
Configure it and start it. -
Install joplin-vieweb with
pip install django-joplin-vieweb -
Create a django project and configure it:
-
Add "joplin_vieweb" to your INSTALLED_APPS settings.py like this:
INSTALLED_APPS = [
...
'joplin_vieweb',
...
]
-
Add some variable in your project settings.py:
# Joplin variables JOPLIN_LOGIN_REQUIRED=True # set to True only if you require a logged user for accessing the notes JOPLIN_SYNC_PERIOD_S=86400 # once a day JOPLIN_NOTES_HISTORY_DEPTH = 10 -
If you set JOPLIN_LOGIN_REQUIRED=True
python manage.py migratepython manage.py createsuperuser- Add the 'accounts/' path in urls.py (see next point)
-
Include the joplin_vieweb URLconf in your project urls.py like this:
path('joplin/', include('joplin_vieweb.urls')), path('accounts/', include('django.contrib.auth.urls')), # only if JOPLIN_LOGIN_REQUIRED=True -
Start the development server and visit http://127.0.0.1:8000/joplin
More advanced guides
Why not joplin-web?
I tried for some hours to make it run. The master branch was easy to setup, but work is still in progress.
And the full featured "vuejs" branch: I just didn't succeed to set it up (neither with node nor with docker).... probably a matter of versions with my raspberry distribution.
โก I decided to do my simple own product, for my simple need: view my notes online.
Thanks for joplin-api that helped me !
For dev: how to setup a dev server around this "package"
To debug: docker-compose up on docker-compose.debug.py, then launch debug target "Python: attach" on vscode.
