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
Preview GitHub README.md files locally before committing them.

Grip -- GitHub Readme Instant Preview Render local readme files before sending off to GitHub. Grip is a command-line server application written in Pyt

Joe Esposito 5.9k Jan 08, 2023
Convert mind maps to markdown for import into Roam.

Mind Map to Markdown for Roam import Got a Mind Map with contents you'd like to import into Roam? Soon, this Python application might do what just you

Romilly Cocking 3 Dec 09, 2021
A markdown extension for converting Leiden+ epigraphic text to TEI XML/HTML

LeidenMark $ pip install leidenmark A Python Markdown extension for converting Leiden+ epigraphic text to TEI XML/HTML. Inspired by the Brill plain te

André van Delft 2 Aug 04, 2021
A markdown template manager for writing API docs in python.

DocsGen-py A markdown template manager for writing API docs in python. Contents Usage API Reference Usage You can install the latest commit of this re

Ethan Evans 1 May 10, 2022
An automated scanning, enumeration, and note taking tool for pentesters

EV1L J3ST3R An automated scanning, enumeration, and note taking tool Created by S1n1st3r Meant to help easily go through Hack The Box machine and TryH

14 Oct 02, 2022
A command line tool that can convert Day One data into markdown files.

Introduction Features Before Start Export data from Day One Check Integrity Special Cases for Photo Extension Name Audio Extension Name Usage Known Is

gyro永不抽风 26 Dec 31, 2022
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 minimal platform for Markdown-based blogs

madblog This project provides a minimal blogging platform based on Markdown files. Demos This project powers the following blogs: Platypush My persona

Fabio Manganiello 2 Aug 02, 2022
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 automated python script that creates mark-down files to read for the aes keys and other useful information.

Archive A automated python script that creates mark-down files to read for the aes keys and other useful information. Table of Contents Benbot Automat

Tector 13 Dec 14, 2022
A Python library to retrieve annotations and notes from Zotero and save them into Markdown files.

Zotero to Markdown Generate Markdown files from Zotero annotations and notes. With new Zotero PDF Reader, all highlights are saved in the Zotero datab

Essi Alizadeh 20 Nov 03, 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 01, 2023
a small simple library for generating documentation from docstrings

inkpot a small simple library for generating documentation from docstrings inkpot is available on pip. Please give it a star if you like it! To know m

Axel Gard 5 Oct 20, 2022
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
A lightweight and fast-to-use Markdown document generator based on Python

A lightweight and fast-to-use Markdown document generator based on Python

快乐的老鼠宝宝 1 Jan 10, 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 06, 2023
Pure-python-server - A blogging platform written in pure python for developer to share their coding knowledge

Pure Python web server - PyProject A blogging platform written in pure python (n

Srikar Koushik Satya Viswanadha 10 Nov 07, 2022
Markdown journal template.

Markdown Journal Template Description This project contains a script which creates a markdown journal template for the current year by creating a mark

Stephen McAleese 2 Mar 06, 2022
Markdown Presentations for Tech Conferences, Training, Developer Advocates, and Educators.

March 1, 2021: Service on gitpitch.com has been shutdown permanently. GitPitch 4.0 Docs Twitter About Watch the Introducing GitPitch 4.0 Video Visit t

David Russell 5.4k Jan 05, 2023
Yuque2md - Offline download the markdown file and image from yuque

yuque2md 按照语雀知识库里的目录,导出语雀知识库中所有的markdown文档,并离线图片到本地 使用 安装 Python3.x clone 项目 下载依

JiaJianHuang 4 Oct 30, 2022