Metadata-Version: 2.4
Name: django-codemirror-editor
Version: 0.1.0
Summary: Django widget for CodeMirror 6 with syntax highlighting
Author-email: Arthur Hanson <worldnomad@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/arthanson/django-codemirror-editor
Project-URL: Repository, https://github.com/arthanson/django-codemirror-editor
Project-URL: Issues, https://github.com/arthanson/django-codemirror-editor/issues
Keywords: django,codemirror,editor,widget,syntax-highlighting
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: Framework :: Django :: 5.2
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Text Editors
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=4.2
Dynamic: license-file

# django-codemirror-editor

A Django widget that integrates [CodeMirror 6](https://codemirror.net/) into Django forms and admin as a drop-in replacement for standard textarea fields.

## Features

- **CodeMirrorWidget** - Form widget that renders textareas with CodeMirror 6
- **AdminCodeMirrorWidget** - Specialized widget with admin-specific styling
- **CodeMirrorField** - Model field (`TextField`) that automatically uses CodeMirror in forms
- **Language support** - HTML, CSS, and JavaScript syntax highlighting
- **Formset support** - Works with Django admin inlines and dynamically added forms
- **content-editor plugin** - Integrates with django-content-editor activation/deactivation events

## Requirements

- Python 3.10+
- Django 4.2+

## Installation

```bash
pip install django-codemirror-editor
```

Add to your `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    ...
    'codemirror_editor',
]
```

## Quick Start

### In a Model

```python
from django.db import models
from codemirror_editor.fields import CodeMirrorField

class Snippet(models.Model):
    code = CodeMirrorField(language='javascript')
```

### In a Form

```python
from django import forms
from codemirror_editor.widgets import CodeMirrorWidget

class SnippetForm(forms.Form):
    code = forms.CharField(widget=CodeMirrorWidget(language='html'))
```

### In Django Admin

```python
from django.contrib import admin
from codemirror_editor.widgets import AdminCodeMirrorWidget

class SnippetAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': AdminCodeMirrorWidget(language='css')},
    }
```

## Configuration

The `language` parameter accepts: `'html'`, `'css'`, or `'javascript'`.

## Disclaimer

This project is not affiliated with, endorsed by, or associated with [CodeMirror](https://codemirror.net/) or its maintainers. It is an independent, third-party Django integration that bundles the CodeMirror 6 editor library.

## License

MIT License - see [LICENSE](LICENSE) for details.
