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 using pip:
pip install django_ace
Update INSTALLED_APPS
:
INSTALLED_APPS = ( # ... 'django_ace', )
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
.
Add a useStrictCSP option.
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.
JavaScriptCatalog
.showgutters
to hide line numbers.behaviours
to avoid auto-insert of quotes.readonly
.toolbar
.fontsize
.tabsize
.>1.11,<=2.1
minLines
, maxLines
, showinvisibles
, usesofttabs
.RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4