Django CKEditors#
This is archived and no longer supported.
See the django-blocknote repository for an alternative.
Version = 2025.05.22.3
CKEditor 5 Integration for Django >= 2.0
Vendored from this excellent project: https://github.com/hvlads/django-ckeditor-5
Licenses#
Django: BSD 3-Clause “New” or “Revised” License
CKEditor 5: GPL 2+ copyleft license
What is django-ckeditors#
django-ckeditors: A Powerful and Versatile Rich Text Editor for Your Django Projects
Seamlessly integrate the renowned CKEditor 5 into your Django website.
Provide your users with a modern and intuitive content creation experience.
Includes features like text formatting, image uploads, tables, code blocks, and more.
Highly customizable to fit your project’s exact needs.
“django-ckeditor-5 provides a strong foundation, and I’m building upon it with customizations that align perfectly with my project’s needs.”
See the Quickstart: here
Ideal For:#
Blogs
Content Management Systems (CMS)
Websites requiring advanced text editing features
Includes the following CKEditor 5 plugins#
- Text Formatting
- Basic:
Bold
Italic
Underline
Strikethrough
Superscript
Subscript
Code
- Paragraph and Structure:
BlockQuote
Heading
Paragraph
Alignment
- Lists:
List
TodoList
ListProperties
- Advanced:
Highlight
Indent
IndentBlock
- Images and Media
- Core:
Image
ImageCaption
ImageStyle
ImageToolbar
ImageResize
ImageInsert
LinkImage
- Upload:
UploadAdapter
SimpleUploadAdapter
- Embedding:
MediaEmbed
HtmlEmbed
- Other
- Link:
Link
- Table:
Table
TableToolbar
TableCaption
TableProperties
TableCellProperties
- Style:
Font
Style
HorizontalLine
- Editing Tools:
CodeBlock
Autoformat
PasteFromOffice
RemoveFormat
SourceEditing
GeneralHtmlSupport
- Word Processing Features
WordCount
Mention
Optimizing Bundle Size#
By default, django-ckeditors includes all available languages. If you only need specific languages, you can create a custom build:
Clone this repository
Modify webpack.config.mjs:
new CKEditorTranslationsPlugin({
language: 'en', // This is the main language, you can change this to suit
// and or
additionalLanguages: ['es', 'fr'], // Only languages you need
// additionalLanguages: 'all',
buildAllTranslationsToSeparateFiles: true,
}),
Run npm run prod to build with only your required languages.
npm run prod