django CMS Snippet
django CMS Snippet provides a plugin for django CMS to inject HTML, CSS or JavaScript snippets into your website.
This addon is compatible with Divio Cloud and is also available on the django CMS Marketplace for easy installation.
We recommend using this plugin only during development:
This plugin is a potential security hazard, since it allows authorized- users to place custom markup or Javascript on pages bypassing all of Django's normal sanitization mechanisms. This could be exploited by users with the right to add snippets to elevate their privileges to superusers. This plugin should only be used during the initial development phase for rapid prototyping and testing.
Contributing
This is a an open-source project. We'll be delighted to receive your feedback in the form of issues and pull requests. Before submitting your pull request, please review our contribution guidelines.
One of the easiest contributions you can make is helping to translate this addon on Transifex.
Documentation
See REQUIREMENTS
in the setup.py
file for additional dependencies:
- Python 2.7, 3.3 or higher
- Django 1.8 or higher
Installation
For a manual install:
- run
pip install djangocms-snippet
- add
djangocms_snippet
to yourINSTALLED_APPS
- run
python manage.py migrate djangocms_snippet
Configuration
To allow the contents of all snippets to be searchable, please set
DJANGOCMS_SNIPPET_SEARCH
to True
in your settings:
DJANGOCMS_SNIPPET_SEARCH = True
We are using Ace as our editor of choice to edit the snippet content. You can customize the theme and mode through:
DJANGOCMS_SNIPPET_THEME = 'github' DJANGOCMS_SNIPPET_MODE = 'html'
Template tag
You can also use a template tag to render a snippet rather than a plugin:
{% load snippet_tags %} {% snippet_fragment [reference] %}
Replace [reference]
with either:
- The snippet ID, e.g.
{% snippet_fragment 42 %}
- The snippet slug, e.g.
{% snippet_fragment 'my-snippet' %}
- The snippet instance, e.g.
{% snippet_fragment instance.snippet %}
Optionally provide a fallback if there is no matching id/slug/instance:
{% snippet_fragment 'my-snippet' or %} ... your content fallback here ... {% endsnippet_fragment %}
Running Tests
You can run tests by executing:
virtualenv env source env/bin/activate pip install -r tests/requirements.txt python setup.py test