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
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 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
Toci is a markdown tool to generate an outline from a given Jupyter notebook.

Toci is a markdown tool to generate an outline from a given Jupyter notebook. It traverses the markdown cells of a given ipynb file to form a toc for you.

Hakan Özler 7 Jan 22, 2022
WyPyPlus is a minimal wiki in 42 lines of Python code.

🍦 WyPyPlus: A personal wiki in 42 lines of code 🍦 WyPyPlus (pronounced "whippy plus") is a minimalist wiki server in 42 lines of code based on wypy

Leo Chen 8 Apr 07, 2022
Yuque2md - Offline download the markdown file and image from yuque

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

JiaJianHuang 4 Oct 30, 2022
Notedown - Markdown <=> IPython Notebook

Python 2/3 and IPython 4 / Jupyter compatible! Convert IPython Notebooks to markdown (and back) notedown is a simple tool to create IPython notebooks

Aaron O'Leary 840 Jan 04, 2023
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
Mdut: a tool for generating Markdown URL tags

mdut mdut (pronounced "em-doot") is a tool for generating Markdown URL tags. It

Nik Kantar 2 Feb 17, 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
A Straightforward Markdown Journal

Introducing Pepys: A straightforward markdown journal "It is rightly made for those who love to document their daily life events" - FOSSBytes Pepys is

Luke Briggs 23 Nov 12, 2022
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

659 Jan 04, 2023
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 08, 2023
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
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
😸Awsome markdown readme for your profile or your portfolio

GitHub Profile Readme Description That's a simple and minimalist README.md for your profile Usage You can download or copy to your repository and make

0 Jul 24, 2022
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
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
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,

10 Apr 23, 2022
Rich-cli is a command line toolbox for fancy output in the terminal

Rich CLI Rich-cli is a command line toolbox for fancy output in the terminal, built with Rich. Rich-cli can syntax highlight a large number of file ty

Textualize 2.5k Jan 02, 2023