A pure python bbcode parser and formatter.
Project description
Overview
========
| What | Where |
|:--------------:|:---------------:|
| Latest Package | http://pypi.python.org/pypi/bbcode |
| Source Code | https://github.com/dcwatson/bbcode |
| Documentation | http://bbcode.readthedocs.org/ |
[](https://travis-ci.org/dcwatson/bbcode)
Installation
============
The easiest way to install the bbcode module is with pip, e.g.:
pip install bbcode
Requirements
============
Python, tested with versions 2.6 through 3.4.
Basic Usage
===========
# Using the default parser.
import bbcode
html = bbcode.render_html(text)
# Installing simple formatters.
parser = bbcode.Parser()
parser.add_simple_formatter('hr', '<hr />', standalone=True)
parser.add_simple_formatter('sub', '<sub>%(value)s</sub>')
parser.add_simple_formatter('sup', '<sup>%(value)s</sup>')
# A custom render function.
def render_color(tag_name, value, options, parent, context):
return '<span style="color:%s;">%s</span>' % (tag_name, value)
# Installing advanced formatters.
for color in ('red', 'blue', 'green', 'yellow', 'black', 'white'):
parser.add_formatter(color, render_color)
# Calling format with context.
html = parser.format(text, somevar='somevalue')
Advantages Over [Postmarkup](https://code.google.com/p/postmarkup/)
===================================================================
* More tag options for how/when to escape - for instance, you can specify
whether to escape html or perform cosmetic replacements on a tag-by-tag
basis. Same for auto-linking and transforming newlines.
* More liberal (and accurate) automatic link creation, using John Gruber's
URL regular expression:
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
* Does not swallow unrecognized tags. For example, [3] will be output as
[3], not silently ignored.
* More flexible tag option parser. Tags may have standard bbcode options,
for example [url=something]text[/url], but may also have named options,
for example [url=something alt=icon]text[/url]. These options are passed
to the render function as a standard python dictionary.
* Ability to specify tag opening and closing delimiters (default: [ and ]).
A side benefit of this is being able to use this library to selectively
strip HTML tags from a string by using < and >.
* Includes a runnable unittest suite.
* Python 3 support.
========
| What | Where |
|:--------------:|:---------------:|
| Latest Package | http://pypi.python.org/pypi/bbcode |
| Source Code | https://github.com/dcwatson/bbcode |
| Documentation | http://bbcode.readthedocs.org/ |
[](https://travis-ci.org/dcwatson/bbcode)
Installation
============
The easiest way to install the bbcode module is with pip, e.g.:
pip install bbcode
Requirements
============
Python, tested with versions 2.6 through 3.4.
Basic Usage
===========
# Using the default parser.
import bbcode
html = bbcode.render_html(text)
# Installing simple formatters.
parser = bbcode.Parser()
parser.add_simple_formatter('hr', '<hr />', standalone=True)
parser.add_simple_formatter('sub', '<sub>%(value)s</sub>')
parser.add_simple_formatter('sup', '<sup>%(value)s</sup>')
# A custom render function.
def render_color(tag_name, value, options, parent, context):
return '<span style="color:%s;">%s</span>' % (tag_name, value)
# Installing advanced formatters.
for color in ('red', 'blue', 'green', 'yellow', 'black', 'white'):
parser.add_formatter(color, render_color)
# Calling format with context.
html = parser.format(text, somevar='somevalue')
Advantages Over [Postmarkup](https://code.google.com/p/postmarkup/)
===================================================================
* More tag options for how/when to escape - for instance, you can specify
whether to escape html or perform cosmetic replacements on a tag-by-tag
basis. Same for auto-linking and transforming newlines.
* More liberal (and accurate) automatic link creation, using John Gruber's
URL regular expression:
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
* Does not swallow unrecognized tags. For example, [3] will be output as
[3], not silently ignored.
* More flexible tag option parser. Tags may have standard bbcode options,
for example [url=something]text[/url], but may also have named options,
for example [url=something alt=icon]text[/url]. These options are passed
to the render function as a standard python dictionary.
* Ability to specify tag opening and closing delimiters (default: [ and ]).
A side benefit of this is being able to use this library to selectively
strip HTML tags from a string by using < and >.
* Includes a runnable unittest suite.
* Python 3 support.
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
bbcode-1.0.17.tar.gz
(9.0 kB
view details)
File details
Details for the file bbcode-1.0.17.tar.gz.
File metadata
- Download URL: bbcode-1.0.17.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71a42209c92cc650c9b3996bf39088e08fc002b155fc6dba5a90ae708fea90d6
|
|
| MD5 |
ce3d7d7cfe90f59b9a6514f4cf97aefa
|
|
| BLAKE2b-256 |
a362adf67f6cf28e6df84d89517a8f88d363602404de924422f1b007160ebf77
|