Django template tag to load static files inline with your template.
Project description
📖 Full documentation: https://barttc.github.io/django-staticinline/
🐱 GitHub Repository: https://github.com/bartTC/django-staticinline
django-staticinline
Works similar to Django's static
template tag, but this one includes
the file directly in the template, rather than a link to it.
You can additionally post-process the file content using custom 'encoder'.
Compatibility Matrix:
Py/Dj | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 |
---|---|---|---|---|---|
4.2 (LTS) | — | ✓ | ✓ | ✓ | ✓ |
5.0 | — | ✓ | ✓ | ✓ | ✓ |
5.1 | — | ✓ | ✓ | ✓ | ✓ |
Quickstart
-
Put the StaticInlineAppConfig along your apps.
INSTALLED_APPS = [ # ... 'staticinline.apps.StaticInlineAppConfig', ]
-
Load the template tag and pass a filename as you'd do with a
static
template tag. You can also post-process the file content. In the example below we encode the content of themykey.pem
file with base64. Several encoders are already built-in, see the Encoder docs.{% load staticinline %} <style>{% staticinline "myfile.css" %}</style> My base64 encoded Key: {% staticinline "mykey.pem" encode="base64" cache=True %}
-
Enjoy the result:
<style>body{ color: red; }</style> My base64 encoded Key: LS0tIFN1cGVyIFByaXZhdGUgS2V5IC0tLQo=
Changelog
v1.6 (2024-11-19)
- Python 3.13 compatibility and tests.
- Drop support for Django <= 4.1.
- Drop support for Python 3.8.
v1.5 (2024-08-11)
- Django 5.0, 5.1 compatibility and tests.
- Python 3.12 compatibility and tests.
- Type annotations.
- Switch from pipenv to Poetry.
v1.4 (2023-04-29)
- Django 3.2 to 4.2 compatibility and tests.
- Python 3.8 to 3.11 compatibility and tests.
v1.3 (2018-08-15)
- Added
cache
andcache_timeout
templatetag arguments to store rendered values in cache. - Added
data_response
AppConfig method to globally override the template tag response.
v1.2 (2018-08-14)
- Added support for Django 2.1 and Python 3.7.
- Added proper documentation.
- Added
sri
(Subresource Integrity) encoder to generate a sha256 for a given file.
v1.1 (2018-08-09)
- Added support for custom data encoders to modify file content on the fly.
- Added
data
andbase64
encoders, both convert data into base64.
v1.0 (2018-04-29)
- 🌟 Initial release.