Skip to main content

Notolog - Python Markdown Editor

Project description

Notolog

PyPI - Version GitHub License PyPI - Python Version GitHub Actions Workflow Status Conda Version PyPI - Downloads

Notolog is an open-source Markdown Editor licensed under the MIT License, combining simplicity with a wide range of tools and an integrated AI assistant. Developed entirely in Python using PySide6, it helps you tackle everyday programming challenges while offering an opportunity to deepen your Markdown skills.

Instant Setup

Using pip:

pip install notolog

Via conda:

conda install notolog -c conda-forge

To start 🚀 the app, simply run:

notolog

Notolog - Python Markdown Editor - UI Example

Features

  • Markdown Support:
    • Text editor equipped with exclusive Markdown syntax highlighting and extended syntax support.
    • Line numbers adapt to each line's height, enhancing readability.
    • Viewer for precise text rendering, utilizing the integrated Python Markdown library.
    • Processes both multi-line and single-line code blocks, along with custom parsing for details and summary blocks.
  • AI Assistant: Provides a chat-style dialogue, supporting both the OpenAI API and on-device local LLM options.
  • Accessibility: Features adjustable font sizes and descriptive elements to enhance usability.
  • Auto-Save: Automatically saves changes to prevent data loss.
  • Enhanced Search:
    • Offers in-file content search with optional case sensitivity.
    • Quick file search within the file tree to efficiently filter results.
  • Encryption: Provides secure AES-128 encryption with Fernet for files (optional).
  • Meta-Headers: Securely stores essential file information within HTML-comment-formatted meta-headers.
  • Multi-Language: Supports multiple languages out of the box.
  • Customizable UI: Includes a variety of color themes to keep the UI fancy.
  • TODO Highlighting: Marks @todo statements for efficient task management.

Translations

Notolog supports multiple languages out of the box, enhancing its accessibility globally. In addition to English, here are the currently supported languages:

  • 简体中文 (Chinese Simplified)
  • Nederlands (Dutch)
  • Suomi (Finnish)
  • Français (French)
  • ქართული (Georgian)
  • Deutsch (German)
  • Ελληνικά (Greek)
  • हिन्दी (Hindi)
  • Italiano (Italian)
  • 日本語 (Japanese)
  • 한국어 (Korean)
  • Latina (Latin)
  • Português (Portuguese)
  • Русский (Russian)
  • Español (Spanish)
  • Svenska (Swedish)
  • Türkçe (Turkish)

Themes

Notolog offers several themes to customize the UI:

  • Default: Every app should have a default theme.
  • Calligraphy: Inspired by the art of calligraphy, this theme resembles a rice paper sheet marked with black ink.
  • Nocturne: A dark-themed UI that plays a jazz nocturne at night.
  • Noir Dark: This theme's name says it all - mystery and style in every pixel.
  • Spooky: Embrace the spooky season with vivid Halloween-themed colors.
  • Strawberry: The most playful theme, reminiscent of strawberry jam.

Below is a glimpse of the UI, featuring the settings window:

Notolog - Python Markdown Editor - UI Example

Installation

Ensure Python 3.9 or higher is installed. For more details, visit python.org.

Using a virtual environment is recommended to avoid version conflicts. From Python 3.6, venv is the recommended method to create virtual environments. For more information check Creation of virtual environments. Alternatively, you can execute the Notolog source code and set up virtual environment with your favorite Python code editor.

Install with pip

Create and activate a virtual environment:

python3 -m venv notolog_env
source notolog_env/bin/activate  # macOS and Linux systems
notolog_env\Scripts\activate  # Windows

Install Notolog using pip:

pip install notolog

Starting the app is as simple as running:

notolog

The app includes a 'Check for Updates' option accessible through the main menu under 'Help'. Where applicable, run the following command to update Notolog to the latest version: pip install notolog --upgrade

How to install venv on Linux systems 🔧

While Python itself usually 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

Install via conda-forge

Create and activate a new environment:

conda create -n notolog_env python=3.11
conda activate notolog_env

Then, execute the installation command:

conda install notolog -c conda-forge

This will fetch and install the latest version of Notolog compatible with Python 3.9 or newer from the conda-forge packages.

Run Notolog:

notolog

Just activate the environment and run the app next time.

Install from Source

  1. Clone the GitHub repository:
git clone https://github.com/notolog/notolog-editor.git
  1. Navigate to the project directory:
cd notolog-editor
  1. Create and activate a virtual environment:
python3 -m venv notolog_env
source notolog_env/bin/activate  # macOS and Linux systems
notolog_env\Scripts\activate  # Windows
  1. Install dependencies:
pip install .
  1. Start Notolog using:
python -m notolog.app

Tests and Test Coverage

To minimize installation overhead and streamline dependency management, dependencies required solely for testing are isolated in test-specific requirements.

To install these dependencies, run: python dev_install.py test. The tomli package is required to execute this script; you can install it using pip install tomli.

This approach helps manage test dependencies independently from the main application dependencies, ensuring a cleaner and more manageable setup.

Run Tests

To execute all available tests:

pytest

To run tests from a specific file:

pytest tests/test_pkg_integration.py
Run Tests with Coverage Reports

To run all tests with a coverage report:

pytest tests/ --cov=notolog --cov-report=term

Alternatively, to exclude UI tests from execution:

pytest tests/ --cov=notolog --cov-report=term --ignore=tests/ui_tests/

Dev Tools

To maintain high standards of code quality and ensure comprehensive test coverage, we utilize several development tools. Flake8, which combines PyFlakes, pycodestyle, and McCabe's complexity checker, is employed to enforce code quality, manage code complexity, and ensure adherence to PEP 8 style conventions.

To install these dependencies, run: python dev_install.py dev. The tomli package is required to execute this script; you can install it using pip install tomli.

Build Tools

Make sure poetry-core and build are installed:

pip install poetry-core build

The following command generates distribution packages. Specifically, it creates both a source distribution and a wheel distribution:

python -m build

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

Notolog is open-source software licensed under the MIT License, which provides flexibility and freedom to use, modify, and distribute the software. To comply with the license when redistributing this software or derivative works, you must include a copy of the original MIT License, found in the LICENSE file.

Third-Party Acknowledgements

This project uses third-party libraries and components, each subject to its own license. Additional dependencies may be installed as necessary. For details on licensing, see ThirdPartyNotices.md.

AI Integration Disclaimers

OpenAI API

Disclaimer: This project integrates the OpenAI API 'as is' and is independent, not affiliated with OpenAI. The creators disclaim any liability for misuse or resulting consequences.

Usage: Users are required to supply their own API keys and adhere to the OpenAI API reference guidelines.

Security: Proper management of API keys is essential for maintaining the security of your data. Ensure that API keys are stored and handled securely to prevent unauthorized access.

ONNX Runtime GenAI

Disclaimer: The 'On Device LLM' module uses ONNX Runtime to enable generative AI features and is not associated with Microsoft or ONNX Runtime.

Python Bindings for llama.cpp

Disclaimer: The 'Module llama.cpp' module in this application utilizes the Python Bindings for llama.cpp to facilitate LLM inference with models in GGUF format. This module is independently developed and is not officially connected to either the llama-cpp-python or the llama.cpp projects.

Security Disclaimer

File Encryption

  • Details: Notolog uses PBKDF2HMAC for key derivation and Fernet (AES-128 CBC mode) for encryption. Future updates may enhance encryption strength.

File Meta-Headers

  • Privacy by Design: Essential information is stored in HTML-comment-formatted meta-headers to preserve essential data.

Data Integrity and Security

  • Auto-Save Feature: Automatically saves changes to minimize data loss.
  • Password Protection: Strong password practices are recommended to protect access to encrypted files.

Legal and Compliance

  • Open Source Compliance: Licensed under the MIT License. Users are responsible for ensuring that their use of the software complies with applicable local laws and regulations.
  • Liability: Developers disclaim liability for misuse or non-compliance with legal and regulatory standards.

Trademark Disclaimer

All trademarks, registered trademarks, product names, and company names or logos mentioned herein are the property of their respective owners. References to these trademarks in any documentation, code, or API communications are for identification purposes only and do not imply endorsement or affiliation.

Support Us

If you find Notolog useful, consider giving it a star 🌟 on the GitHub page. This helps others discover the project and contributes to its growth. Thank you for your support!


This README.md file has been carefully crafted and edited using the Notolog editor itself.

Download files

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

Source Distribution

notolog-1.0.7.tar.gz (2.6 MB view details)

Uploaded Source

Built Distribution

notolog-1.0.7-py3-none-any.whl (2.8 MB view details)

Uploaded Python 3

File details

Details for the file notolog-1.0.7.tar.gz.

File metadata

  • Download URL: notolog-1.0.7.tar.gz
  • Upload date:
  • Size: 2.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for notolog-1.0.7.tar.gz
Algorithm Hash digest
SHA256 2e2e3e8328bc06bea1886dd6d25a1c78d1ef4bae30e32f816096c29f815d6ce7
MD5 ceac1b0440fa0a55de86aefc404d6683
BLAKE2b-256 4e609fa6fcdb9c653c63a3231be5adc22178911700840565d5f7e91e5c8a88a3

See more details on using hashes here.

File details

Details for the file notolog-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: notolog-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for notolog-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 90a72cd0becb8bc86e7beb98e1ab30d9efcd39dd57fd304c6b65f15dd74b2a4e
MD5 fa028783c1371fa277592a29ca3ef282
BLAKE2b-256 833ed5d7c1e32d8dc1961a9a437d24a196f405acdb6fd73b53a97007e98f22a8

See more details on using hashes here.

Supported by

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