This commit is contained in:
Adrian 2015-09-06 23:13:50 +02:00
parent 61eaefb4d6
commit 854bedf48e
4 changed files with 40 additions and 12 deletions

View file

@ -1,4 +1,4 @@
# django-markdownx
# django-markdownx v1.0.1
Django Markdownx is a markdown editor built for Django.
@ -102,7 +102,10 @@ Template is highly customizable, so you can easily use i.e. Bootstrap to layout
1. **Django Admin**
When using included `MarkdowxModel` object in your models, just use `MarkdownxModelAdmin` as follows:
```python
#admin.py
from django.contrib import admin
from markdownx.admin import MarkdownxModelAdmin
@ -112,6 +115,25 @@ Template is highly customizable, so you can easily use i.e. Bootstrap to layout
admin.site.register(MyModel, MarkdownxModelAdmin)
```
However, when you want to use `markdownx` with other models, lets say `TextField`, override default widget as below:
```python
#admin.py
from django.db import models
from django.contrib import admin
from markdownx.widgets import AdminMarkdownxWidget
from .models import MyModel
class MyModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': AdminMarkdownxWidget},
}
admin.site.register(MyModel, MyModelAdmin)
```
# Customization
@ -169,7 +191,12 @@ When you want to use Bootstrap 3 and side-by-side panes (as in preview image abo
# Changelog
###### v1.0
###### v1.0.1
* Moved html logic from FormField to Widget to be able to override model objects other than included MarkdownxModel
* Fixed default value for `MARKDOWNX_EDITOR_RESIZABLE`
###### v1.0.0
* Warning: no backward compatibility
* Admin, Model and Form custom objects
@ -247,4 +274,4 @@ Would be nice to have some help with those!
# Notes
**django-markdownx** was inspired by great [django-images](https://github.com/mirumee/django-images) and [django-bootstrap-markdown](http://thegoods.aj7may.com/django-bootstrap-markdown/) packages.
**django-markdownx** was inspired by great [django-images](https://github.com/mirumee/django-images) and [django-bootstrap-markdown](http://thegoods.aj7may.com/django-bootstrap-markdown/) packages.

View file

@ -1,6 +1,5 @@
from django import forms
from .settings import MARKDOWNX_EDITOR_RESIZABLE
from .widgets import (
MarkdownxWidget,
AdminMarkdownxWidget,
@ -14,10 +13,3 @@ class MarkdownxFormField(forms.CharField):
if self.widget.__class__ != AdminMarkdownxWidget:
self.widget = MarkdownxWidget()
if self.widget.attrs.has_key('class'):
self.widget.attrs['class'] += ' markdownx-editor'
else:
self.widget.attrs.update({'class':'markdownx-editor'})
self.widget.attrs['data-markdownx-editor-resizable'] = MARKDOWNX_EDITOR_RESIZABLE

View file

@ -13,7 +13,7 @@ MARKDOWNX_UPLOAD_CONTENT_TYPES = getattr(settings, 'MARKDOWNX_UPLOAD_CONTENT_TYP
MARKDOWNX_IMAGE_MAX_SIZE = getattr(settings, 'MARKDOWNX_IMAGE_MAX_SIZE', {'size': (500, 500), 'quality': 90,})
# Editor
MARKDOWNX_EDITOR_RESIZABLE = getattr(settings, 'MARKDOWNX_EDITOR_RESIZABLE', False)
MARKDOWNX_EDITOR_RESIZABLE = getattr(settings, 'MARKDOWNX_EDITOR_RESIZABLE', True)
# Translations
LANGUAGES = getattr(settings, 'LANGUAGES', (

View file

@ -3,10 +3,19 @@ from django.template import Context
from django.template.loader import get_template
from django.contrib.admin import widgets
from .settings import MARKDOWNX_EDITOR_RESIZABLE
class MarkdownxWidget(forms.Textarea):
def render(self, name, value, attrs=None):
if attrs.has_key('class'):
attrs['class'] += ' markdownx-editor'
else:
attrs.update({'class':'markdownx-editor'})
attrs['data-markdownx-editor-resizable'] = MARKDOWNX_EDITOR_RESIZABLE
widget = super(MarkdownxWidget, self).render(name, value, attrs)
t = get_template('markdownx/widget.html')