An open API service indexing awesome lists of open source software.

https://github.com/django-ace/django-ace

Django-ace-editor is an implementation of the ajax.org Ace editor as a form widget.
https://github.com/django-ace/django-ace

ace-editor django python

Last synced: 1 day ago
JSON representation

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

Awesome Lists containing this project

README

        

==========
django-ace
==========

Usage
=====

::

from django import forms
from django_ace import AceWidget

class EditorForm(forms.Form):
text = forms.CharField(widget=AceWidget(width=None, height=None))

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'))

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"
wordwrap=False,
width="500px", # Deprecated, pass None and use CSS
height="300px", # Deprecated, pass None and use CSS
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
useworker=True,
extensions=None,
basicautocompletion=False,
liveautocompletion=False,
))

For a ``ModelForm``, for example in Django admin, it can be used like this::

class PageForm(forms.ModelForm):
class Meta:
model = Page
fields = ("title", "body")
widgets = {
"body": AceWidget(
mode="markdown", theme="twilight", width=None, height=None
),
}

class PageAdmin(admin.ModelAdmin):
form = PageForm

Install
=======

1. Install using pip::

pip install django_ace

2. Update ``INSTALLED_APPS``::

INSTALLED_APPS = (
# ...
'django_ace',
)

Example Project
===============

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

cd example/
python -m venv .venv
source .venv/bin/activate
pip install -e ..
./manage.py migrate
./manage.py runserver

Then browser to ``http://localhost:8000``.

Change log
==========

v1.39.1
-------

- Update ACE editor to version v1.39.1.

Add a `useStrictCSP` option.

v1.38.0
-------

- Update ACE editor to version v1.38.

The ``width`` and ``height`` arguments (which sets the HTML ``style``
attribute) are starting a slow change of their default
values. Starting from this version do not rely in their default
arguments, give them explicitly!

They are changing from ``width="500px", height="300px"`` (setting the
HTML ``style`` argument) to ``width=None, height=None`` (relying on
the CSS).

The default CSS uses ``width: 500px; height: 300px``, so changing from
no ``width`` and no ``height`` to ``width=None, height=None`` is an
easy correct move.

If you need custom size, prefer using ``width=None, height=None`` (the
future default values) and use CSS to customize the size, this permits
more secure CSP rules.

v1.37.5
-------

- Update ACE editor to version v1.37.5.
- Use minified and non-conflict ACE instead of basic.
- Expose two new options: enablebasicautocompletion and enableliveautocompletion.

v1.36.2
-------

- Update ACE editor to version v1.36.2.

v1.32.4
-------

- Expose useworker, contributed by @mounirmesselmeni.

v1.32.3
-------

- Update ACE editor to version v1.32.3.

v1.32.0
-------

- Update ACE editor to version v1.32.0.
- Expose extensions, contributed by @okaycj.

v1.31.1
-------

- Update ACE editor to version v1.31.1.

v1.26.0
-------

- Update ACE editor to version v1.26.0.

v1.24.1
-------

- Update ACE editor to version v1.24.1.

v1.23.4
-------

- Update ACE editor to version v1.23.4.

v1.22.1
-------

- Update ACE editor to version v1.22.1.

v1.19.0
-------

- Update ACE editor to version v1.19.0.

v1.15.4
-------

- Added CSS to work with new admin in Django 4.2. Now you can use `width="100%"` without breaking the layout.

v1.15.3
-------

- Update ACE editor to version v1.15.3.

v1.14.0
-------

- Update ACE editor to version v1.14.0.
- Follow ACE version numbers.

v1.0.13
-------

- Update ACE editor to version v1.11.2.

v1.0.12
-------

- Update ACE editor to version v1.5.0.

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.