Welcome to OpenJournal’s documentation!

Tests Format Build https://github.com/bgallois/OpenJournal/raw/master/resources/readme.png

OpenJournal is a simple journal, note-taking, and assistant application supporting Markdown syntax and Markdown rendering thanks to qmarkdowntextedit. It is designed to be as simple as possible with complete Markdown syntax, smart drag’n drop, and keyboard shortcuts.

OpenJournal is available for Linux, Windows, and macOS.

Design Philosophy

OpenJournal is a simple note-taking application. Each day represents a separate entry that can be navigated using a calendar widget. Each journal is stored inside a database that can be either a local file (*.jnl) or a database inside a MariaDB server.

User Interface

The user interface of OpenJournal is designed to be as simple as possible. It is constituted of 3 resizable panels:

  • The editor panel.

  • The calendar panel.

  • The preview panel.

A toolbox provides shortcuts to the Markdown syntax and a menu bar to create and open journals.

Editor

The editor is based on QMarkdowTextEdit and supports the Markdown syntax and find and replace. It supports smart drag and drop for images and texts. Dropping an image from a local folder or from an Html link will copy the image in the journal and reference it locally. Plain text can be added by dropping a text file in the editor. The text will be inserted at the cursor location.

Calendar

The calendar provides a quick way to navigate through the journal.

Preview

The preview provides a way to visualize the rendered Markdown document. It can be used to previsualize the result of an entry and to comfortably read a journal.

Installation

Stable versions of OpenJournal can be found on the releases page. It is available on Linux as an AppImage compatible with all the major distributions, on Windows as a basic installer, and on macOS as an App.

Note

During the installation on Windows and Mac systems, security alerts are displayed because the OpenJournal executable does not possess an EV code signing certificate. These alerts can be ignored safely.

Text formatting

Markdown text

Paragraph

Paragraphs are separated by a blank line.

Style

*italic*,
**bold**

List

Bullet list:
* Start a line with an asterisk
* Food
* Fruits
    * Oranges
    * Apples

Numbered list:
1. One
2. Two
3. Three

To do list:
- [x] Task one
- [ ] Task two
- [ ] Task three

Code

`inline`
```
block
```

Formulas

\\( inline \\)
\\[ block \\]

Quote

> This is a blockquote.

Separator

---

Markdown image

Images can be added by dropping a file in the editor or using the Markdown syntax ![label](path). The image will be stored in the journal database and the reference will be updated to ![OpenJournal_label](tmp/label) and should not be modified afterward. Image files are temporarily copied in the system temporary folder for rendering and deleted when no longer useful.

Notification

OpenJournal included a system of alarms that can be set using the Add Alarm button on the toolbar or directly in plaintext with the command:

setAlarm(hh:mm,message);

The alarm sound can be activated in the Options menu in the menu bar. In any case, the alarm will display the alarm’s message in the system tray.

Keyboard shortcuts

Markdown features

Insert to-do list

CTRL + Key_D

Insert numbered list

CTRL + Key_L

Insert unordered list

CTRL + SHIFT + Key_L

Insert table

CTRL + Key_T

Insert image

CTRL + Key_I

If a text is selected, it will be passed as as path.

Insert formula

CTRL + Key_F

If a text is selected, it will be passed as as path.

OpenJournal features

Lock the journal

CTRL + Key_Escape

Insert alarm

CTRL + Key_A

Advanced

MariaDB journal

Note

OpenJournal can access remotely created journals that are hosted on a MariaDB/MySQL server. For security purposes, do not expose databases to the internet!.

Server creation

sudo apt install mariadb-server
sudo mysql_secure_installation
mysql -u root -p
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

Connection

  • Go to File -> Connect to a remote planner.

  • Enter username@hostname:port

  • Enter journalname@password. If username has write privilege on the server, journalname database will be created if it doesn’t exist, else journalname has to be created on the server by a user with write privilege.