fdemmer / django-ace

Django-ace [fork!] is an implementation of the ajax.org Ace editor as a form widget.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

django-ace

Build Coverage PyPI Download PyPI Python Versions PyPI License

django-ace provides integration for Ace - The High Performance Code Editor for the Web with Django.

django-ace is a fork of Kit Sunde's django-ace-editor by Bradley Ayers and continued by Julien Palard et al.

This is another fork by Florian Demmer; Compare changelog and source to decide whether you need the changes or better use upstream.

Usage

from django import forms
from django_ace import AceWidget

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget)

Syntax highlighting and static analysis can be enabled by specifying the language:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(mode='css'))

Themes are also supported:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(mode='css', theme='twilight'))

To deactivate the syntax checker completely, disable the Web Worker:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(
        mode='css', theme='twilight', use_worker=False
    ))

All options, and their default values, are:

class EditorForm(forms.Form):
    text = forms.CharField(widget=AceWidget(
        mode=None,  # try for example "python"
        theme=None,  # try for example "twilight"
        use_worker=True,
        wordwrap=False,
        width="500px",
        height="300px",
        minlines=None,
        maxlines=None,
        showprintmargin=True,
        showinvisibles=False,
        usesofttabs=True,
        tabsize=None,
        fontsize=None,
        toolbar=True,
        readonly=False,
        showgutter=True,  # To hide/show line numbers
        behaviours=True,  # To disable auto-append of quote when quotes are entered
    ))

Installation

  1. Install using pip:
pip install django_ace
  1. Update INSTALLED_APPS:
INSTALLED_APPS = (
    # ...
    'django_ace',
)

Example Project

There's an example project included in the source, to try it do:

# install in virtualenv
cd example/
virtualenv .env
. .env/bin/activate
pip install -e ..
# prepare sqlite database
./manage.py makemigrations app
./manage.py migrate
# user for admin access
./manage.py createsuperuser
# run dev-server
./manage.py runserver

Then browser to http://localhost:8000 or http://localhost:8000/admin.

Change log

v2.1.0

  • Update Ace editor to version v1.31.2
  • Add CSS to work with admin changes in Django 4.2. Now you can use width="100%" without breaking the layout. (Anh Tran <anhtran.sky@gmail.com>in upstream v1.15.4)
  • Replace flake8 with ruff

v2.0.0

  • Update Ace editor to version v1.10.1 and use minified build
  • General cleanup and modernization of code
  • Update example with widget in TabularInline
  • Update packaging by Julien Palard
  • Python >= 3.6 is required

v1.1.0

  • Rewrite of init() function to support admin inline-forms
  • New widget option use_worker
  • Use template engine to generate widget HTML
  • Rewrite of boolean data attributes
  • Add tests, update example with admin integration
  • Last release supporting Python 2.7

v1.0.11

  • Support Grappelli inlines.

v1.0.10

  • FIX JavaScript error when using JavaScriptCatalog.

v1.0.9

  • New widget option showgutters to hide line numbers.
  • New widget option behaviours to avoid auto-insert of quotes.

v1.0.8

  • New widget option readonly.
  • Update ACE editor to version v1.4.12.

v1.0.7

  • New widget option toolbar.
  • Update ACE editor to version v1.4.8.

v1.0.6

  • New widget option fontsize.
  • Update ACE editor to version v1.4.7.

v1.0.5

  • New widget option tabsize.
  • Upgrade ACE editor to version v1.4.2.

v1.0.4

  • Update Django compatibility to >1.11,<=2.1
  • New widget options minLines, maxLines, showinvisibles, usesofttabs.
  • Upgrade ACE editor to version v1.4.0.
  • Updated example for Django 1.11
  • PEP8 improvements

v1.0.2

  • Upgrade ACE editor to version 1.1.8
  • Add support for showprintmargin

v1.0.1

  • Add support for Django 1.7 by removing deprecated imports.

v1.0.0

  • Initial release.

About

Django-ace [fork!] is an implementation of the ajax.org Ace editor as a form widget.

License:Other


Languages

Language:JavaScript 74.1%Language:Python 22.9%Language:CSS 1.3%Language:Makefile 1.3%Language:HTML 0.4%