Flask-CKEditor-Manager (from now on FCKM) provides a simple interface to use CKEDitor5 javascript library with Flask. Greatly inspired by Flask-CKEditor
🚧 This package is under heavy development..
Install the extension with pip:
pip install flask-ckeditor-manager
Install with poetry:
poetry add flask-ckeditor-manager
This are some of the settings available
Config | Description | Type | Default |
---|---|---|---|
CKEDITOR_LICENSE_KEY | CKEditor License key | str | None |
CKEDITOR_EDITOR_TYPE | Editor package to be displayed | str | "classic" |
CKEDITOR_LOCAL_PATH | If custom package is present, this is the path in the static folder. | str | None |
CKEDITOR_LANGUAGE | The lengague of the editor. | str | None |
CKEDITOR_ENABLE_CSRF | Enable CSRF protection in SimpleUpload adapter | bool | None |
CKEDITOR_UPLOAD_ENDPOINT | SimpleUpload adapter endpoint. Must follow the CKEditor5 estipulations. Read more | str | None |
CKEDITOR_WATCHDOG | If watchdog plugin installed change this value to True to enable its rendering | bool | None |
Once installed the FCKM is easy to use. Let's walk through setting up a basic application. Also please note that this is a very basic guide: we will be taking shortcuts here that you should never take in a real application.
To begin we'll set up a Flask app:
from flask import Flask
app = Flask(__name__)
FCM works via a CKEditorManager object. To kick things off, we'll set up the ckeditor_manager
by instantiating it and telling it about our Flask app:
from flask_ckeditor import CKEditorManager
ckeditor_manager = CKEditorManager()
ckeditor_manager.init_app(app)
Once the extension is set up, this will make available the ckeditor
object into the templates context so you could load the javascript package easily, like this.
<head>
{{ ckeditor.load() }}
</head>
Once created you can pass the Chart
object to render_template and use it likewise.
<!-- ckeditor.load() must be called before this line -->
<textarea id="editor"></textarea>
<div class="my-classes">{{ ckeditor.config('editor') }}</div>