# django-simpleinliner

A simple Django app for inlining static CSS and JS files in templates.

## Rationale

Provides a quick and easy way to inline an entire JS or CSS file from staticfiles into a template, wrapping it in appropriate tags. `django-compressor` does this but I wanted something more lightweight, and also wanted to try my hand at writing a Django extension. Some inspiration and staticfile-handling code was taken from [`django-inlinecss`](https://github.com/roverdotcom/django-inlinecss/).

## Installation

```
$ pip install django-simpleinliner
```

Add `simpleinliner` to your `INSTALLED_APPS` setting.

## Usage

Load the app at the top of your template:

```
{% load simpleinliner %}
```

Call `inlinecss` or `inlinejs` where you want to pull in a static file:

```
{% inlinejs 'path/to/my.js' %}

{% inlinecss 'path/to/my.css' %}
```

The file will be inserted into the template each time the template is rendered, keeping it up to date.

You can override the default attributes given to `<script>` and `<style>` tags generated by `simpleinliner` by including the following in your project settings:

```
SIMPLEINLINER_DEFAULT_TAG_ATTRIBUTES = {
    'script': {
        'charset': 'utf-8',
        'type': 'text/javascript',
    },
    'style': {
        'charset': 'utf-8',
        'type': 'text/css',
    },
}
```

Add or edit these as desired to change the attributes applied to these tags.

By default `simpleinliner` will silently fail (including an empty tag) if the specified path doesn't exist. You can force it to raise an exception by setting `SIMPLEINLINER_RAISE_EXCEPTIONS` to `True` in your project settings.

## Issues, Suggestions, Contributions

...are welcome on GitHub. Thanks for your interest in `simpleinliner`!
