A simple web viewer for Joplin app
View on github
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.
- 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:
- 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:
- Sort notebooks nor notes
- Move note or notebook from one notebook to another.
- No specific handling for todos.
- Search for notes or tags
-
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 migrate
python 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
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 !
To debug: docker-compose up on docker-compose.debug.py, then launch debug target "Python: attach" on vscode.