A Straightforward Markdown Journal

Overview

Introducing Pepys: A straightforward markdown journal

Pepys

"It is rightly made for those who love to document their daily life events"
- FOSSBytes

Pepys is a journalling application that utilises markdown for writing and storing the journal entries

Features

Markdown Highlighting

syntax highlighting

Pepys provides highlighting for key Markdown syntax in a clean and focus-driven design. Bold is bold, code is clear from text, and tags and urls don't clutter your view.

Inbuilt HTML Preview

web preview

With a click of a button your markdown is rendered with links all clickable, images viewable, and even iframes are interactable.

Markdown Shortcuts

table

Pepys features tools to add tables and images quickly and easily. No more fiddling with alignment or hassles with relative directories.

Date Oriented

calendar

Pepys is for making journal writing simple. Organising your entries into dates is automatic. There is no file selector, instead you pick a date and write the entry for that date. Clicking a date with an existing entry will show that entry.

You also have the ability to favourite specific dates and add tags.

Dark Theme

dark theme

Whether you write in day or night, Pepys will make sure that it is as comfortable as possible

Future Proof

future proof

Pepys stores all your entries as plain text files in a YYYY/MM folder structure with a YYYY-MM-DD.md name format. This means that all your entries themselves will be viewable forever in any text editor that will come along.

Pepys also uses pandoc syntax, with support for pandoc conversions to other formats. This means that all your entries can be converted completely to HTML, PDF, LaTeX, Microsoft Word, EPUB, and more!

Installation

Windows

Installer & Standalone

The installer and standalone zip files are available on the releases page

Winget

Pepys is available through winget:

winget install pepys

MacOS

Pepys on MacOS uses the homebrew package manager

  • Download the ruby (.rb) file from the releases page
  • navigate to the ruby file in Terminal
  • brew install pepys.rb

Linux

Flatpak

Pepys is available on Flathub

flatpak install flathub dev.lukebriggs.pepys

AUR

Pepys is available on the Arch User Repository

yay -S pepys

Debian/Fedora/Arch

Distribution specific packages are available on the releases page

Source Code

The source code is available on Github

Featured in

FossBytes - https://fossbytes.com/document-activity-pepys-journal-app-linux/

ConnectWWW.com - https://connectwww.com/pepys-markdown-journal-application/62941/

Contributors

Hubert Figuière Evie Jackson

Comments
  • More packages for Linux

    More packages for Linux

    Is something like more linux packages in the works?

    Anything would be preferable to flatpak (as it stands, the install takes me over 1GB for a journal app), though it'd be ideal if there were repo packages (PPA, AUR) or even installable files (deb, rpm, zst, tgz). Alternatively, snaps and appimages are also more efficient than flatpaks and thus more tolerable for being non-native packages.

    The software looks great, but I'm afraid distributing it only via flatpak makes it too heavy for a markdown journal (about as heavy as native packages for libreoffice, firefox, emacs, obsidian and brave combined).

    opened by Jatin794 3
  • Navigation suggestions

    Navigation suggestions

    The date files, instead of being in date folders, should be directly in month folders, especially since the software is designed to support just one entry per date. The current organisation of one-file date folders seem like a redundant step in navigation. (Though I'd argue keeping entries together even if it supported multiple entries using exact timestamps as titles.)

    Also, suggestively, the month folder can be, for example, 07 instead of 7. That would keep the order consistent on older systems which could only read numbers per digit in sorting.

    opened by Jatin794 2
  • Unable to run Pepys Flatpak on Ubuntu

    Unable to run Pepys Flatpak on Ubuntu

    OS: Ubuntu 21.04 ( 64-bit)

    Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway. qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

    Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

    /app/bin/runner.sh: line 1: 3 Aborted (core dumped) python3 /app/src/main/python/main.py

    bug 
    opened by manikandancode 2
  • [BUG] - Uninstall does not remove ARP Entry

    [BUG] - Uninstall does not remove ARP Entry

    Describe the bug When uninstalling Pepys, the entry still remains in appwiz.cpl

    To Reproduce Steps to reproduce the behavior:

    1. run winget install pepys -s winget
    2. Wait for the install to finish
    3. Open appwiz.cpl
    4. Double click on Pepys and confirm the uninstall
    5. Wait for the uninstall to finish
    6. Refresh appwiz.cpl
    7. Note the app still appears

    Expected behavior Uninstall removes the Registry Entries for Pepys

    Screenshots - None -

    Desktop (please complete the following information):

    • OS: Microsoft Windows 10 build 19041.1586
    • Version: Pepys 1.5.0

    Additional context This bug causes winget to think the application is installed when it isn't

    bug 
    opened by Trenly 1
  • New feature: Tag analysis

    New feature: Tag analysis

    Feature description: This adds a new feature to generate statistics about the tags of all entry files. This provides a simple tool for habit tracking or track the progress of activities. As tags are interpreted from yaml syntax, it is possible to add a value to each tag: e.g. tags: [sport, running: 4.5] to add a tag sport and a tag running with a value for the distance. For this example tag analysis can give insight, how often you did sports every week or what distance was covered running every month.

    Implementation: This PR adds a new tab 'Tag analysis' to the EntryExplorer, where you can enter a tag name and a time interval (day/week/month/year). On button click all the tags of all entry files are inspected and a table of the selected tag within the time intervals is generated. It is possible to show the number of tag occurrences, the tag values or the value sum as the result in the table.

    Additional small change: Tags have an individual color in the calendar view to distinguish them easier.

    The PR is ready to be merged. Maybe the color appearance of the UI elements in the analysis tab could be improved, but I don't know how the Qt style sheet works.

    opened by uhrfra 1
  • Add fulltext search in diary entries

    Add fulltext search in diary entries

    • The entry explorer serves as a tab container for calendar view and the new search widget.
    • In the search widget the user can start a fulltext search (case insensitive), matching diary entries are listed in the table.
    • Clicking on the result opens the diary entry.
    • Search is performed in a background thread to prevent the GUI from freezing on long searches. The user can break an ongoing search.
    opened by uhrfra 1
  • Add encryption feature

    Add encryption feature

    Usage

    • If encryption is not initialized nothing changes and Pepys can be used as normal.
    • Encryption can be initialized via the button in the settings window. When initialized the user must enter the password at every start of the program.
    • With initialized encryption the user can select via the lock icon at the entry's toolbar if the entry file is stored as a markdown file (.md) or as an encrypted file (.md.crypt).
    • In the calendar view a small lock icon marks encrypted entries.
    • In the settings window the user can choose to encrypt new entry files as default. Furthermore, there are two button to convert all entry files in the diary directory to encrypted or plain text.
    • Encryption can be deactivated again in the settings window: All entry files are converted to plain text and the password request is removed.

    Technical implementation

    • Symmectric Fernet encryption from the cryptography library is used for text encryption.
    • With the PBKDF2HMAC function the cryptographic key is derived from the password. As encryption should only depend on the password, a fixed salt is used.
    • The password is not stored anywhere, but a SHA256 hash of the key is written to the config file to indicate if encryption is enabled and as a check if the password was entered correctly.

    Open issues

    • The cryptography library was added to the requirements.txt, but I did not update the file python3-requirements.json. Is this necessary?
    • Also, I didn't test if the setups build or work correctly with the new dependency on the library cryptography.
    opened by uhrfra 1
  • Move file access and naming in separate class, improve saving, allow flat file structure

    Move file access and naming in separate class, improve saving, allow flat file structure

    Hello,

    I did a little refactoring and added some features.The main changes are as following:

    1. I moved all file access and file name operations for the diary entries to the class EntryFile to keep them in one single place.
    2. Diary entry files are only created if they have real content (and not only the header). This prevents creating "empty" files when clicking in a calendar cell without editing the text.
    3. As I found saving the text to a file at every key press too frequently, it is now called whenever the mouse leaves the EditPane (leaveEvent).
    4. In the settings the user can choose that the diary entries are stored in a flat file structure: All new files are then created in the year folder of the diary directory and images are placed in the common subdirectory 'images'. If the option is not selected, the file structure is as before. In both cases existing diary entries are not touched and shown correctly in the calendar view.

    Feel free to ask in case of any questions.

    Best regards!

    opened by uhrfra 1
  • Little beautification on calendar view

    Little beautification on calendar view

    Hello,

    I found your awesome project and maybe want to do some slight enhancements for my personal need. To gain a first insight into the code I did a mini-improvement on the calendar view:

    • Mark the current day
    • Grey out days without diary entry

    Feel to merge my changes into the main branch!

    Best regards!

    opened by uhrfra 1
  • Flatpak: Can't access USB drive for journal storage

    Flatpak: Can't access USB drive for journal storage

    I'm using the flatpak version of Pepys and I moved my journal to a USB drive. I updated the config file to point to the new location of my journal, however Pepys couldn't access it. I noticed the flatpak permissions only include the home directories.
    On my system I manually added filesystem permission for Pepys to the /media directory and this solved my problem (sudo flatpak override dev.lukebriggs.pepys --filesystem=/media/). I submitted this in hopes of getting this added to the flatpak version, but I do not know if there are any downsides to adding this directory to the permissions. I'm also using Linux Mint and I'm not familiar with other distros to know if they auto mount drives to the /media directory or to another.

    opened by mcain99 1
  • Suggestions regarding spell checker and fonts

    Suggestions regarding spell checker and fonts

    I suggest there should be options for changing the spell checker dictionary or just disable it. It would help if there was a menu to control the text font and size.
    If it would be possible to retain these settings between sessions, it would be ideal.

    opened by r-palmeira-pt 1
Releases(v1.5.5)
Owner
Luke Briggs
Computer Science student at Newcastle University
Luke Briggs
Provides syntax for Python-Markdown which allows for the inclusion of the contents of other Markdown documents.

Markdown-Include This is an extension to Python-Markdown which provides an "include" function, similar to that found in LaTeX (and also the C pre-proc

Chris MacMackin 85 Dec 30, 2022
Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files

Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files. Mdformat is a Unix-style command-line tool as well as a Python library.

Executable Books 180 Jan 6, 2023
A markdown lexer and parser which gives the programmer atomic control over markdown parsing to html.

A markdown lexer and parser which gives the programmer atomic control over markdown parsing to html.

stonepresto 4 Aug 13, 2022
A fast yet powerful Python Markdown parser with renderers and plugins.

Mistune v2 A fast yet powerful Python Markdown parser with renderers and plugins. NOTE: This is the re-designed v2 of mistune. Check v1 branch for ear

Hsiaoming Yang 2.2k Jan 4, 2023
A Python implementation of John Gruber’s Markdown with Extension support.

Python-Markdown This is a Python implementation of John Gruber's Markdown. It is almost completely compliant with the reference implementation, though

Python-Markdown 3.1k Dec 30, 2022
A Python implementation of John Gruber’s Markdown with Extension support.

Python-Markdown This is a Python implementation of John Gruber's Markdown. It is almost completely compliant with the reference implementation, though

Python-Markdown 3.1k Dec 31, 2022
Static site generator that supports Markdown and reST syntax. Powered by Python.

Pelican Pelican is a static site generator, written in Python. Write content in reStructuredText or Markdown using your editor of choice Includes a si

Pelican dev team 11.3k Jan 5, 2023
Extensions for Python Markdown

PyMdown Extensions Extensions for Python Markdown. Documentation Extension documentation is found here: https://facelessuser.github.io/pymdown-extensi

Isaac Muse 685 Jan 1, 2023
markdown2: A fast and complete implementation of Markdown in Python

Markdown is a light text markup format and a processor to convert that to HTML. The originator describes it as follows: Markdown is a text-to-HTML con

Trent Mick 2.4k Dec 30, 2022
Convert HTML to Markdown-formatted text.

html2text html2text is a Python script that converts a page of HTML into clean, easy-to-read plain ASCII text. Better yet, that ASCII also happens to

Alireza Savand 1.3k Dec 31, 2022
Comprehensive Markdown plugin built for Django

Django MarkdownX Django MarkdownX is a comprehensive Markdown plugin built for Django, the renowned high-level Python web framework, with flexibility,

neutronX 740 Jan 8, 2023
Awesome Django Markdown Editor, supported for Bootstrap & Semantic-UI

martor Martor is a Markdown Editor plugin for Django, supported for Bootstrap & Semantic-UI. Features Live Preview Integrated with Ace Editor Supporte

null 659 Jan 4, 2023
Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed. Now in Python!

markdown-it-py Markdown parser done right. Follows the CommonMark spec for baseline parsing Configurable syntax: you can add new rules and even replac

Executable Books 398 Dec 24, 2022
A fast, extensible and spec-compliant Markdown parser in pure Python.

mistletoe mistletoe is a Markdown parser in pure Python, designed to be fast, spec-compliant and fully customizable. Apart from being the fastest Comm

Mi Yu 546 Jan 1, 2023
Livemark is a static page generator that extends Markdown with interactive charts, tables, and more.

Livermark This software is in the early stages and is not well-tested Livemark is a static site generator that extends Markdown with interactive chart

Frictionless Data 86 Dec 25, 2022
A super simple script which uses the GitHub API to convert your markdown files to GitHub styled HTML site.

A super simple script which uses the GitHub API to convert your markdown files to GitHub styled HTML site.

Çalgan Aygün 213 Dec 22, 2022
Remarkable Markdown Debian Package Fix

Remarkable debian package fix For some reason the Debian package for remarkable markdown editor has not been made to install properly on Ubuntu 20.04

Eric Seifert 37 Jan 2, 2023
Read a list in markdown and do something with it!

Markdown List Reader A simple tool for reading lists in markdown. Usage Begin by running the mdr.py file and input either a markdown string with the -

Esteban Garcia 3 Sep 13, 2021
Lightweight Markdown dialect for Python desktop apps

Litemark is a lightweight Markdown dialect originally created to be the markup language for the Codegame Platform project. When you run litemark from the command line interface without any arguments, the Litemark Viewer opens and displays the rendered demo.

null 10 Apr 23, 2022