Skip to main content

Notolog Markdown Editor

Project description

Notolog

Notolog   PyPI - Version PyPI - License PyPI - Python Version

Overview

Notolog is a versatile open-source markdown editor developed with Python and Qt, ideal for anyone looking for an efficient and straightforward way to handle markdown files. Born from a personal endeavor to address daily programming challenges and deepen Python proficiency, Notolog stands as a proof-of-concept that seamlessly integrates simplicity with functionality, offering an intuitive user experience across various platforms.


Notolog settings UI example

Features

  • Notolog is open-sourced under the MIT license, promoting full transparency and encouraging collaboration.
  • Markdown syntax highlighting:
    • Editor mode offers smooth highlighting tailored specifically for Notolog, with line numbers and extended syntax highlighting.
    • View mode utilizes the Python Markdown library for seamless rendering of Markdown syntax.
    • Supports multi-line block open-close tokens for improved readability and structure.
  • Multi-platform support: Compatible with all major platforms where Python is installed, ensuring accessibility across operating systems.
  • Accessible features, including:
    • Clear and accessible descriptions for enhanced usability.
    • Font size adjustment for better readability.
  • Background and cross-action save changes experience:
    • Automatically saves changes in the background to ensure data integrity and minimize user intervention.
    • Seamlessly handles unsaved changes when performing cross-actions, providing a smooth user experience.
  • Search functionality:
    • Allows users to search within the opened file.
    • Quick search by file name within the tree, enabling efficient navigation and content retrieval.
  • File meta-headers in the form of HTML comments to avoid excess visibility.
  • Password-based File Encryption and Decryption:
    • Utilizes Fernet for encryption, providing a secure and user-friendly method for symmetric (also known as "secret key") encryption.
    • Fernet employs AES-128 in CBC mode. Plans to introduce AES-256 in future updates are aimed at further enhancing security.
  • File Meta-Headers:
    • Notolog implements file meta-headers to store encryption parameters, ensuring a seamless decryption process.
  • Translations-friendly file structure:
    • Supports several languages out of the box, with provisions for adding and supporting additional languages.
  • Color themes support:
    • Comes with a few predefined color themes to customize the editor's appearance, for both light and dark modes.
  • Hotkeys support:
    • It currently supports hotkeys like Ctrl+S for saving and Ctrl+F for searching, with plans for further expansion.
  • In-line context menus:
    • Right-click context menu options in the file tree for file rename and delete actions.
    • Customizable toolbar with right-click functionality to show/hide icons based on user preferences.
  • Includes a suite of unit tests to ensure code reliability and maintainability, providing confidence in the editor's functionality.
  • AI Assistant UI to get all things you need in one place:
    • At the moment the OpenAI API is supported with plans to extend support with other providers.
  • Notolog includes specialized highlighting for TODOs. Simply type '@todo something' to mark tasks, enhancing the ability to track and manage future plans efficiently.

There is no classical web engine integration to make overall package more lightweight and to achieve the best possible performance.

Prerequisites

Python 3.9 or higher installed on your system.

If you haven't already, download and install Python from the official website python.org.

Check the version of Python available with this command python3 -V.

pip (Python package installer) should be available.

You can check if pip is installed by running pip3 --version in your terminal/command prompt.

Virtual Environment

It is highly recommended to use as it helps avoid version conflicts and interference from other packages. Below is a description of how to set up a virtual environment on your machine.

Installation

Method 1: pip installer (Recommended)

pip install notolog

That's it! Starting the app is as simple as notolog.

To update to the latest version, use:

pip install --upgrade notolog

Method 2: Python source code

  1. Open Terminal.
  2. Clone project's GitHub repository to get a latest version.
    • git clone https://github.com/notolog/notolog-editor.git
  3. Navigate to the just cloned project's directory using the cd command.
  4. Make sure the virtual environment is activated as it's a common practice to isolate project code (activation described below).
  5. Simply run this command to set up project dependencies:
pip3 install -r requirements.txt

That's it! Starting the app is as simple as python3 main.py

Run tests

To run all available tests:

pytest

To run a particular file's tests:

pytest tests/test_notolog_editor.py

Virtual Environments

The instructions below contain steps of how to set up venv virtual environment to run a Python app safely. Starting from Python 3.6 venv is a recommended way to create virtual environments. For more information check Creation of virtual environments. Alternatively, you can execute the Notolog code and set up virtual environment with your favorite Python code editor.

MacOS and Linux

Set Up Virtual Environment
  1. Open Terminal.
  2. Navigate to your project directory using the cd command.
  3. Create a virtual environment by running python3 -m venv notolog. Replace notolog with the desired name for your virtual environment.
Activate Virtual Environment:

To activate the virtual environment, run:

source notolog/bin/activate

To deactivate environment just run this command:

deactivate
Install venv on Linux systems

While Python itself comes pre-installed on many Linux distributions, including Ubuntu, some distributions may not include the venv module by default. Therefore, you need to install it separately using the package manager before you can use it to create virtual environments.

Ubuntu/Debian

sudo apt-get update
sudo apt-get install python3-venv

Fedora

sudo dnf install python3-venv

CentOS/RHEL

sudo yum install python3-venv

Windows

Set Up Virtual Environment
  1. Open Command Prompt or PowerShell.
  2. Navigate to your project directory using the cd command.
  3. Create a virtual environment by running python -m venv notolog. Replace notolog with the name you want to give to your virtual environment.
Activate Virtual Environment

To activate the virtual environment, run:

notolog\Scripts\activate

Mind the environment name (notolog or any other selected before).

Contributing

If you encounter any issues or would like to contribute to the project, please don't hesitate to open an issue or submit a pull request on the project's GitHub page.

License

The Notolog project is licensed under the MIT License - see the LICENSE file for details.

Third-Party Components

Libraries and Licenses

This project utilizes numerous third-party libraries, each with its own licensing terms. Below is a detailed list of these libraries grouped by license type to help clarify what each license permits and requires. This categorization aids in ensuring compliance with legal terms for use, modification, and distribution of these software components.

GNU LGPLv3, GNU GPLv2, or Commercial License

MIT License

BSD Licenses

Other Dual Licensed

Python Standard Library

The Unlicense

  • Codehilite CSS Themes: Base themes for code highlighting. The Unlicense

Please note that while the majority of this project is licensed under the MIT License, certain components may have different licensing terms. Always refer to the documentation of each library for detailed information about its license and terms of use.

APIs

OpenAI API Disclaimer

Disclaimer: This project is independent and neither affiliated with, endorsed by, nor sponsored by OpenAI. Integration of the OpenAI API in this project is provided on an "as is" basis, without any official partnership or endorsement by OpenAI. The creators of this project disclaim all liability for any misuse, harm, or other consequences resulting from the use of the OpenAI API.

Usage: Our project employs the OpenAI API to enhance natural language processing capabilities. Users are required to provide their own OpenAI API keys and should refer to the OpenAI API reference for detailed usage guidelines.

Responsibility: Users are responsible for obtaining, configuring, and managing their OpenAI API keys in accordance with OpenAI's terms of service and usage policies.

Security: It is crucial for users to manage their API keys securely, ensuring they are not exposed or shared in public forums.

This section was generated with the assistance of AI to ensure accurate and concise information regarding the use of the OpenAI API.

Security Disclaimer

This application is primarily designed for educational purposes and uses PBKDF2HMAC for key derivation. It employs Fernet, which utilizes AES-128 in CBC mode. The key is initially created at 256 bits but truncated to 128 bits for encryption. The encryption salt and iteration counts are stored unencrypted in the file's header, making this setup suitable for educational and non-critical applications only. As such, while this software provides basic security, it is not intended for high-security needs. Users are encouraged to choose strong passwords to enhance data protection. Distributed under the MIT License, this open-source application requires users to ensure compliance with applicable laws, and the developers disclaim liability for misuse or legal non-compliance.


░░░░░░░░░░░░░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓███■███▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░ ╔═══════════════════════════════════════════════════════════════════════════════════════════╗ ║ This README.md file has been carefully crafted and edited using the Notolog editor itself ║ ╚═══════════════════════════════════════════════════════════════════════════════════════════╝

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notolog-0.9.1b0.tar.gz (695.8 kB view hashes)

Uploaded Source

Built Distribution

notolog-0.9.1b0-py3-none-any.whl (556.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page