A zero-dependency, CSP-strict, bidirectional rich-text editor for Django.
Project description
Jalgo-editor
A zero-dependency, CSP-strict, bidirectional rich-text editor that feels like Notion but lives natively inside the Django Admin.
Why Jalgo?
Right now, if a Django developer wants a rich-text editor, they have to compromise:
- CKEditor / TinyMCE: Bloated, and fails strict Content Security Policies (CSP) because they inject
style="..."everywhere. - Editor.js: Block-based, making mixed-language typing (Persian and English in the same article) a frustrating experience.
- Tiptap/ProseMirror: Requires NPM, React/Vue, and complex build pipelines.
Jalgo-editor is the anti-bloat editor. It is a pure Python and Vanilla JavaScript package that drops into any Django project instantly. No NPM, no build steps, no external CSS frameworks required.
Killer Features
- Smart Bi-Directional (Bidi) Engine: Users don't click an "RTL" or "LTR" button. The editor automatically detects the language of every new paragraph natively applying
dir="rtl"to Persian/Arabic blocks, anddir="ltr"to English. - Bank-Grade Security (Double Sanitization): 100% CSP compliant with zero inline styles. A rigorous frontend DOM sanitizer prevents client-side XSS during copy-paste, while a robust backend Python parser provides defense-in-depth Stored XSS protection. Safely handles Base64 image embedding while aggressively stripping malicious data URIs.
- The "Zen" Interface & Dynamic Themes: Notion-like Bubble Menus, fully keyboard-navigable Slash Commands (
/), and a beautiful premium glassmorphism design. Instantly switch between multiple themes including Default, Dark, Retro, and an 8-Bit pixel aesthetic! - Live Syntax Highlighting: A lightweight, zero-dependency generic syntax highlighter automatically colorizes programming languages (keywords, strings, comments) in
<pre>code blocks as you type—even adapting to your chosen theme. - Built-in SEO Tools & Code View: Real-time word counts, reading time, heading hierarchy validators, and a robust HTML Code View editor.
- Seamless Admin Integration: Automatically initializes in Django Admin, fully supporting dynamic Inline Formsets without any configuration.
- Drag & Drop Images: Works out-of-the-box using local Base64 embedding with secure validation.
Installation
Install using pip:
pip install jalgo-editor
Add to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
# ...
"jalgo_editor",
]
Usage
Simply swap your standard models.TextField with FluidTextField:
from django.db import models
from jalgo_editor.fields import FluidTextField
class Article(models.Model):
title = models.CharField(max_length=200)
content = FluidTextField() # Automatically renders the Notion-style editor
No widget configuration needed! It will seamlessly appear in your Django Admin with beautiful Glassmorphism styling and dark-mode support.
Monetizable Extensions (Premium API)
Jalgo-editor includes configuration hooks for premium integrations:
JALGO_AI_LICENSE_KEY: Unlocks the/aiautocomplete translation and phrasing engine inside the bubble menu.JALGO_CDN_TOKEN: Bypasses your local media storage to automatically drag-and-drop upload and WebP-optimize images to the Jalgo CDN.
License
MIT License
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jalgo_editor-1.0.0.tar.gz.
File metadata
- Download URL: jalgo_editor-1.0.0.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40a38971510d7d00e3626580f6fdaec51a311645be9cbee628b29a0ad4897d1f
|
|
| MD5 |
98818d1137fdd3b151ebac86c23e3fff
|
|
| BLAKE2b-256 |
082c2960ccb8dd6b2f78277c3b7b010fc9b34e836fb65039ccf84ec83c05cd07
|
Provenance
The following attestation bundles were made for jalgo_editor-1.0.0.tar.gz:
Publisher:
publish.yml on iamjalipo/Jalgo-editor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jalgo_editor-1.0.0.tar.gz -
Subject digest:
40a38971510d7d00e3626580f6fdaec51a311645be9cbee628b29a0ad4897d1f - Sigstore transparency entry: 1734209757
- Sigstore integration time:
-
Permalink:
iamjalipo/Jalgo-editor@5da77c3aa1cdc04b30ec11d4454060d768a03cbe -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/iamjalipo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5da77c3aa1cdc04b30ec11d4454060d768a03cbe -
Trigger Event:
push
-
Statement type:
File details
Details for the file jalgo_editor-1.0.0-py3-none-any.whl.
File metadata
- Download URL: jalgo_editor-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b37c56a7b8fb643dd3ff7c9504d615dff0dc97e6f2f1481fd03f026f3321da3a
|
|
| MD5 |
92da73f196b162ea4750f8490f316959
|
|
| BLAKE2b-256 |
be8331b9d3d36ae0bdfc9b43d5033d3fbf185151bb894b5d26ba1994fef4fb26
|
Provenance
The following attestation bundles were made for jalgo_editor-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on iamjalipo/Jalgo-editor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jalgo_editor-1.0.0-py3-none-any.whl -
Subject digest:
b37c56a7b8fb643dd3ff7c9504d615dff0dc97e6f2f1481fd03f026f3321da3a - Sigstore transparency entry: 1734209800
- Sigstore integration time:
-
Permalink:
iamjalipo/Jalgo-editor@5da77c3aa1cdc04b30ec11d4454060d768a03cbe -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/iamjalipo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5da77c3aa1cdc04b30ec11d4454060d768a03cbe -
Trigger Event:
push
-
Statement type: