David.dev 🐍

about ~ apps

13. Februar 2020 21:12 django

Django 3 WYSIWYG editors

If you are using Django for running your blog or website you almost certainly need a WYSIWYG (What you see is what you get) editor to make your life -- of the one of your writers -- easier.

I have tried pretty much all the editors available in the official list Django WYSIWYG editors and there are my findings:

First you need to decide if you want your editor to save the data in HTML or Markdown. Whilst HTML might seems more straightforward editors often use HTML very poorly in formatting your articles or pages. Markdown is a more clean solution.

There are not many Markdown editors for Django that would work out of the Box with Django 3. Here is a quick summary:

Martor

Martor that worked decently on Django 2 but I get some issues in Django 3 e.g. preview is not working and the look and feel of the default editor is a not the most user friendly. It also has some old configurations that would upload your photos via imgur that to me is a big no-no. There is no reason to upload your photos through external sources given how easy is to store them in the Django media directory. This behaviour can be disabled but then you won't be able (as far as I could tell) to upload photos in articles which again is not useful.

MarkdownX

Django MarkdownX works pretty well out of the box. It has a very useful drag and drop functionality for photos that is not available in any other editor. So if just dragging and dropping your photos is a must, this a good editor. What is missing is the formatting bar at the top so you better remember all the markdown tags! 😄 this can be a bit distracting but I am using it in a live website mostly for the very easy drag and drop functionality.

You can also define the max size of an image and this will definitely help you in saving even more valuable time.

Django Pagedown 🏆

Pagedown is the editor used in Stackoverflow. Django-Pagedown integrates it with your django project! It is not a 1:1 clone but it has a lot of the necessary functionality. This is for me the winner: very easy to use, it has a toolbar and integrates very well with the admin. The maintainer recently added the images upload functionality which is a big plus (currently in the develop branch). Code tags (important for code samples) work very well and is easy to setup.

Having a good WYSIWYG editor is pretty much essential for every blog or CMS. With a good system you will write more and more often!