A WYSIWYG editor plugin made by vditor for django
Project description
django-vditor
django-vditor is Markdown Editor plugin application for django base on vditor.
django-vditor was inspired by great django-mdeditor.
Features
- Almost Vditor features
- Support three editing modes: what you see is what you get (wysiwyg), instant rendering (ir), split screen preview (sv)
- Support outline, mathematical formulas, brain maps, charts, flowcharts, Gantt charts, timing charts, staff, multimedia, voice reading, title anchors, code highlighting and copying, graphviz rendering
- Built-in security filtering, export, task list, multi-platform preview, multi-theme switching, copy to WeChat official account/Zhuhu function
- Implement CommonMark and GFM specifications, format Markdown and view syntax tree, and support 10+ configurations
- The toolbar contains 36+ operations. In addition to supporting extensions, you can customize the shortcut keys, prompts, prompt locations, icons, click events, class names, and sub-toolbars in each item.
- You can use drag and drop, clipboard to paste upload, display real-time upload progress, and support CORS cross-domain upload
- Pasted HTML is automatically converted to Markdown. If the pasted includes external link pictures, it can be uploaded to the server through the designated interface
- Support main window size drag and drop, character count
- Multi-theme support, built-in three sets of black and white themes
- Multi-language support, built-in Chinese, English, and Korean text localization
- Support mainstream browsers, friendly to mobile
- The VditorTextField field is provided for the model and can be displayed directly in the django admin.
- The VditorTextFormField is provided for the Form and ModelForm.
- The VditorWidget is provided for the Admin custom widget.
Quick start
- Installation.
# pip
pip install django-vditor
# pipenv
pipenv install django-vditor
# poetry
poetry add django-vditor
# pdm
pdm add django-vditor
- Add
vditor
to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
...
'vditor',
]
- add frame settings for django3.0+ like this:
X_FRAME_OPTIONS = 'SAMEORIGIN'
- Add 'media' url to your settings like this:
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/media/'
- Add url to your urls like this:
from django.conf.urls import url, include
from django.conf.urls.static import static
from django.conf import settings
...
urlpatterns = [
...
path('vditor/', include('vditor.urls'))
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- Write your models like this:
from django.db import models
from vditor.fields import VditorTextField
class ExampleModel(models.Model):
name = models.CharField(max_length=10)
content = VditorTextField()
- Register your model in
admin.py
- Run
python manage.py makemigrations
andpython manage.py migrate
to create your models. - Login Admin ,you can see a markdown editor text field like this:
Usage
Edit fields in the model using Markdown
Using Markdown to edit the fields in the model, we simply replace the TextField
of the model with VditorTextField
.
from django.db import models
from vditor.fields import VditorTextField
class ExampleModel(models.Model):
name = models.CharField(max_length = 10)
content = VditorTextField()
Admin in the background, will automatically display markdown edit rich text.
Used in front-end template, you can use like this:
{% load static %}
<! DOCTYPE html>
<html lang = "en">
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset = utf-8" />
</head>
<body>
<form method = "post" action = "./">
{% csrf_token %}
{{ form.media }}
<ul style="display: flex">
{{ form.as_p }}
</ul>
<p> <input type = "submit" value = "post"> </p>
</form>
</body>
</html>
Edit fields in the Form using markdown
Use markdown to edit fields in the Form, use VditorTextFormField
instead of forms.CharField
, as follows:
from vditor.fields import VditorTextFormField
class VditorForm(forms.Form):
name = forms.CharField()
content = VditorTextFormField()
ModelForm
can automatically convert the corresponding model field to the form field, which can be used normally:
class VditorModleForm(forms.ModelForm):
class Meta:
model = ExampleModel
fields = '__all__'
Use the markdown widget in admin
Use the markdown widget in admin like as :
from django.contrib import admin
from django.db import models
# Register your models here.
from. import models as demo_models
from vditor.widgets import VditorWidget
class ExampleModelAdmin(admin.ModelAdmin):
formfield_overrides = {
models.TextField: {'widget': VditorWidget}
}
admin.site.register(demo_models.ExampleModel, ExampleModelAdmin)
Customize the toolbar
Add the following configuration to settings
:
VDITOR_CONFIGS = { # remember to write "' '"
'default':{
"width": "%90", # use numbers or percentages
"height": 360, # use numbers
"preview_theme": "light", # can fill in dark, light, wechat
"typewriterMode": "True", # whether to enable typewriter mode
"mode": "ir", # optional modes: sv, ir, wysiwyg
"debugger": "false", # whether to show log
"value": "", # editor initialization value
"theme": "classic", # can fill in classic, dark
"icon": "ant", # canfill in ant, material
"outline": "false", # show outline
}
}
Reference
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-vditor-1.1.1.tar.gz
.
File metadata
- Download URL: django-vditor-1.1.1.tar.gz
- Upload date:
- Size: 4.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e64cc957b4768fb79e11cee04a335a7325d704aab3b2d1351965b935fe4a527b |
|
MD5 | 7dd88e9632d27948845e1a0e79be0d0c |
|
BLAKE2b-256 | e930a9eb4bfce3a3d6c6b9c634eaff90402b3ae26110ae521c0e50c539b5700f |
File details
Details for the file django_vditor-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: django_vditor-1.1.1-py3-none-any.whl
- Upload date:
- Size: 4.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bec0359af0496f77c2034380e09f7b14f8721e64771e12bccb25599f77762456 |
|
MD5 | 6db0de51b6749886a50c320d76077175 |
|
BLAKE2b-256 | d4d1b2834070e1998152747ff14df07b89b8da60b9bac6245eec226bbae4c6c4 |