Install

Install package in your environment :

pip install djangocodemirror

For development usage see Install for development.

Configuration

Add it to your installed Django apps in settings :

INSTALLED_APPS = (
    ...
    "djangocodemirror",
)

Then load default application settings in your settings file:

from djangocodemirror.settings import *

There is no URL to mount or database migrations to apply.

Settings

Default application settings

These are the default settings you can override in your own project settings right after the line which load the default app settings.

djangocodemirror.settings.CODEMIRROR_FIELD_INIT_JS = '<script>var {varname} = CodeMirror.fromTextArea(document.getElementById("{inputid}"), {settings});</script>'

Template string for HTML Code to instanciate CodeMirror for a field.

djangocodemirror.settings.CODEMIRROR_SETTINGS = {'basic': {'mode': 'rst'}, 'css': {'addons': ['CodeMirror/addon/edit/matchbrackets.js', 'CodeMirror/addon/hint/show-hint.js', 'CodeMirror/addon/hint/css-hint.js'], 'extraKeys': {'Ctrl-Space': 'autocomplete'}, 'extra_css': ['CodeMirror/addon/hint/show-hint.css'], 'matchBrackets': True, 'modes': ['css']}, 'django': {'addons': ['CodeMirror/addon/mode/overlay.js'], 'mode': 'django', 'modes': ['xml', 'javascript', 'css', 'vbscript', 'htmlmixed', 'django']}, 'empty': {}, 'html': {'mode': 'htmlmixed', 'modes': ['xml', 'javascript', 'css', 'vbscript', 'htmlmixed']}, 'javascript': {'addons': ['CodeMirror/addon/edit/matchbrackets.js', 'CodeMirror/addon/comment/continuecomment.js', 'CodeMirror/addon/comment/comment.js'], 'continueComments': 'Enter', 'extraKeys': {'Ctrl-Q': 'toggleComment'}, 'matchBrackets': True, 'modes': ['javascript']}, 'python': {'addons': ['CodeMirror/addon/edit/matchbrackets.js'], 'matchBrackets': True, 'mode': {'name': 'python', 'singleLineStringErrors': False, 'version': 3}, 'modes': ['python']}, 'restructuredtext': {'addons': ['CodeMirror/addon/mode/overlay.js'], 'mode': 'rst', 'modes': ['python', 'stex', 'rst']}, 'scss': {'addons': ['CodeMirror/addon/edit/matchbrackets.js'], 'matchBrackets': True, 'mode': 'text/x-scss', 'modes': ['css']}, 'with-all': {'addons': ['CodeMirror/lib/util/dialog.js'], 'extra_css': ['CodeMirror/theme/ambiance.css'], 'lineNumbers': True, 'lineWrapping': True, 'mode': 'rst', 'modes': ['rst', 'python'], 'theme': 'neat', 'themes': ['eclipse', 'neat']}, 'without-bundle': {'css_bundle_name': None, 'js_bundle_name': None, 'modes': ['rst', 'python'], 'themes': ['eclipse', 'elegant']}}

Available CodeMirror configurations.

djangocodemirror.settings.CODEMIRROR_BASE_JS = ['CodeMirror/lib/codemirror.js']

List of CodeMirror Javascript base files that will be loaded before every other CodeMirror Javascript components.

djangocodemirror.settings.CODEMIRROR_BASE_CSS = ['CodeMirror/lib/codemirror.css']

List of CodeMirror CSS base files that will be loaded before themes.

djangocodemirror.settings.CODEMIRROR_THEMES = {'ambiance': 'CodeMirror/theme/ambiance.css'}

Available CodeMirror CSS Theme files.

djangocodemirror.settings.CODEMIRROR_MODES = {'css': 'CodeMirror/mode/css/css.js', 'django': 'CodeMirror/mode/django/django.js', 'htmlmixed': 'CodeMirror/mode/htmlmixed/htmlmixed.js', 'javascript': 'CodeMirror/mode/javascript/javascript.js', 'python': 'CodeMirror/mode/python/python.js', 'rst': 'CodeMirror/mode/rst/rst.js', 'stex': 'CodeMirror/mode/stex/stex.js', 'vbscript': 'CodeMirror/mode/vbscript/vbscript.js', 'xml': 'CodeMirror/mode/xml/xml.js'}

Available CodeMirror Javascript mode files.

djangocodemirror.settings.CODEMIRROR_JS_ASSET_TAG = '<script src="{url}"></script>'

HTML element to load a Javascript asset

djangocodemirror.settings.CODEMIRROR_CSS_ASSET_TAG = '<link rel="stylesheet" href="{url}">'

HTML element to load a CSS asset

djangocodemirror.settings.CODEMIRROR_BUNDLE_CSS_NAME = 'dcm-{settings_name}_css'

Template string for Javascript bundle names

djangocodemirror.settings.CODEMIRROR_BUNDLE_JS_NAME = 'dcm-{settings_name}_js'

Template string for CSS bundle names

djangocodemirror.settings.CODEMIRROR_BUNDLE_CSS_OPTIONS = {'filters': 'yui_css', 'output': 'css/dcm-{settings_name}.min.css'}

Option arguments used to build CSS bundles with django-assets.

djangocodemirror.settings.CODEMIRROR_BUNDLE_JS_OPTIONS = {'filters': 'yui_js', 'output': 'js/dcm-{settings_name}.min.js'}

Option arguments used to build Javascript bundles with django-assets.