Skip to content

A django app that allows the easy addition of EpicEditor markdown editor to a django form field, whether in a custom app or the Django Admin.

License

Notifications You must be signed in to change notification settings

barraq/django-epiceditor

Repository files navigation

django-epiceditor

A django app that allows the easy addition of EpicEditor markdown editor to a django form field, whether in a custom app or the Django Admin.

Preview

Here are a few screenshots of EpicEditor within django.

Standard edition mode

A screenshot of EpicEditor standard edition mode in Django's admin

Fullscreen edition mode mode

A screenshot of EpicEditor fullscree mode in Django's admin")

Installation

Note

This package will install a cloned copy of the EpicEditor library from https://github.com/OscarGodson/EpicEditor

Usage

If you want to use the EpicEditor editor in a django admin field, there are numerous possible approaches:

To use it in all TextField's in you admin form:

from django.db import models
from epiceditor.widgets import AdminEpicEditorWidget

class FooModelAdmin(models.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': AdminEpicEditorWidget },
    }

Alternatively, to only use it on particular fields, first create a form (in forms.py):

from django import forms
from models import FooModel
from epiceditor.widgets import AdminEpicEditorWidget
class FooModelForm(forms.ModelForm):
    a_text_field = forms.CharField(widget=AdminEpicEditorWidget())
    another_text_field = forms.CharField(widget=AdminEpicEditorWidget())

    class Meta:
        model = FooModel

and in your admin.py:

from forms import FooModelForm

class FooModelAdmin(models.ModelAdmin):
    form = FooModelForm

Themes

EpicEditor comes with different themes. In order to change the default themes EpicEditorWidget allows you to pass themes parameters. For instance if you want to use the light theme for the editor do as follow:

from django import forms
from models import FooModel
from epiceditor.widgets import AdminEpicEditorWidget
class FooModelForm(forms.ModelForm):
    a_text_field = forms.CharField(widget=AdminEpicEditorWidget(themes={'editor':'epic-light.css'}))
    another_text_field = forms.CharField(widget=AdminEpicEditorWidget())

    class Meta:
        model = FooModel

Notes

This plugin was develop by taking inspiration from django-pagedown and is using the great EpicEditor.

About

A django app that allows the easy addition of EpicEditor markdown editor to a django form field, whether in a custom app or the Django Admin.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages