A django BBCode integration..
Project description
Django-precise-bbcode is a Django application providing a way to create textual contents based on BBCodes.
BBCode is a special implementation of HTML. BBCode itself is similar in style to HTML, tags are enclosed in square brackets [ and ] rather than < and > and it offers greater control over what and how something is displayed.
This application includes a BBCode compiler aimed to render any BBCode content to HTML and allows the use of BBCodes tags in models, forms and admin forms. The BBCode parser comes with built-in tags (the default ones ; b, u, etc) and allows the use of custom BBCode tags. These can be added in two different ways:
Custom tags can be defined in the Django administration panel and stored into the database ; doing this allows any non-technical admin to add BBCode tags by defining the HTML replacement string associated with each tag
Tags can also be manually registered to be used by the parser by defining a tag class aimed to render a given bbcode tag and its content to the corresponding HTML markup
Requirements
python >= 2.7 (tested with version 2.7, 3.2, 3.3)
django >= 1.4 (tested with version 1.4, 1.5, 1.6)
setuptools
Installation
Just run:
pip install django-precise-bbcode
Once installed you can configure your project to use django-precise-bbcode with the following steps.
Add precise_bbcode to INSTALLED_APPS in your project’s settings module:
INSTALLED_APPS = ( # other apps 'precise_bbcode', )
Then install the models:
python manage.py syncdb # Or python manage.py migrate precise_bbcode if you are using South
Usage
Rendering tools
BBCode parser
The BBCode parser built in Django-precise-bbcode can also be used if you need to convert BBCode contents to HTML outside of Django templates. Just use the render method of the BBCode parser:
from precise_bbcode.parser import get_parser parser = get_parser() parser.render('[b]Hello [u]world![/u][/b]')
BBCode fields
The Django built-in models.TextField is all you need to simply add BBCode contents to your models. However, a common need is to store both the BBCode content and the corresponding HTML markup in the database. To address this Django-precise-bbcode provides a BBCodeTextField.
from django.db import models from precise_bbcode.fields import BBCodeTextField class Post(models.Model): content = BBCodeTextField()
A BBCodeTextField field contributes two columns to the model instead of a standard single column : one is used to save the BBCode content ; the other one keeps the corresponding HTML markup. The HTML content of such a field can then be displayed in any template by using its rendered attribute:
{{ post.content.rendered }}
License
BSD. See LICENSE for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-precise-bbcode-0.3.tar.gz
.
File metadata
- Download URL: django-precise-bbcode-0.3.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15dcb002ebd34b504b8a289a848cfa8f1d778d5a977b97a00d91aead36251430 |
|
MD5 | 76147c7893471986492ac86fe76db795 |
|
BLAKE2b-256 | fb1c9bc867700e4d05791155d5a85e991508bc80e2e9523136acd4d39e06ae1e |