Metadata-Version: 2.4
Name: django-admin-json-highlight
Version: 0.1.0
Summary: A simple Django Admin mixin to highlight JSONB fields using highlight.js
Keywords: django,admin,json,jsonb,highlight,highlight.js,syntax
Author: Matt Matijevich
Author-email: Matt Matijevich <mattijevi@proton.me>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
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
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: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Dist: django>=4.2
Requires-Python: >=3.10
Project-URL: Homepage, https://codeberg.org/mattijevi/django-admin-json-highlight
Project-URL: Repository, https://codeberg.org/mattijevi/django-admin-json-highlight
Project-URL: Issues, https://codeberg.org/mattijevi/django-admin-json-highlight/issues
Description-Content-Type: text/markdown

# django-admin-json-highlight

A simple Django Admin mixin to render and syntax-highlight JSON / JSONField values
using [highlight.js](https://highlightjs.org/).

## Installation

```bash
pip install django-admin-json-highlight
```

Add to `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    # ...
    "django_admin_json_highlight",
]
```

## Usage

Mix `JsonHighlightMixin` into your `ModelAdmin` and use `render_json_field` to
produce HTML for any JSON-serializable attribute on the object.

```python
from django.contrib import admin
from django_admin_json_highlight import JsonHighlightMixin

from .models import Event


@admin.register(Event)
class EventAdmin(JsonHighlightMixin, admin.ModelAdmin):
    readonly_fields = ("payload_pretty",)

    def payload_pretty(self, obj):
        return self.render_json_field(obj, "payload")

    payload_pretty.short_description = "Payload"
```

## Configuration

The mixin loads highlight.js from cdnjs by default. Override either URL in
`settings.py` to use a different version, theme, or self-hosted asset:

```python
HIGHLIGHT_JS_JS_URL = "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js"
HIGHLIGHT_JS_CSS_URL = "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/github-dark.min.css"
```

Relative paths are resolved through Django's `static` tag, so you can also point
these at files served from your own `STATICFILES_DIRS`.

## Requirements

- Python 3.10+
- Django 4.2+

## License

MIT
