Django BBcode集成..
django-precise-bbcode的Python项目详细描述
django precise bbcode是一个django应用程序,提供了一种基于bbcode创建文本内容的方法。
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.
此应用程序包括一个bbcode编译器,旨在将任何bbcode内容呈现为html,并允许在模型、表单和管理表单中使用bbcode标记。bbcode解析器带有内置标记(默认标记;b、u等),并允许使用smilies、自定义bbcode占位符和自定义bbcode标记。这些可以通过两种不同的方式添加:
- 自定义标记可以在Django管理面板中定义并存储到数据库中;这样做允许任何非技术管理员通过定义与每个标记关联的HTML替换字符串来添加BBCode标记
- 还可以通过定义一个标记类来手动注册标记,以供解析器使用,该标记类旨在将给定的bbcode标记及其内容呈现给相应的HTML标记
Requirements
- Python 2.7+或3.4+
- 姜戈1.11+
- PIL或枕头(微笑标签所需)
Installation
只需运行:
pip install django-precise-bbcode
安装后,您可以通过以下步骤将项目配置为使用django precise bbcode
将precise_bbcode添加到项目设置模块中的INSTALLED_APPS中:
INSTALLED_APPS=(# other apps'precise_bbcode',)
然后安装型号:
python manage.py migrate
Usage
Rendering bbcodes
django precise bbcode附带bbcode解析器,允许您将包含bbcode标记的文本内容转换为相应的html标记。为此,只需导入get_parser快捷方式并使用BBCode解析器的render方法:
>>> from precise_bbcode.bbcode import get_parser >>> parser = get_parser() >>> parser.render('[b]Hello [u]world![/u][/b]') '<strong>Hello <u>world!</u></strong>'
很简单
由于您可能需要在一个django模板中呈现bbcode,因此在加载bbcode_tags:
{% load bbcode_tags %} {% bbcode entry.bbcode_content %} {{ "[b]Write some bbcodes![/b]"|bbcode }}
entry.bbcode_content字段中包含的bbcode内容将转换为html并显示。最后一条语句将输出<strong>Write some bbcodes!</strong>。
Storing bbcodes
虽然可以使用django内置的models.TextField将bbcode内容添加到模型中,但通常需要在数据库中同时存储bbcode内容和相应的html标记。为了解决这个问题,django precise bbcode提供了一个BBCodeTextField
fromdjango.dbimportmodelsfromprecise_bbcode.fieldsimportBBCodeTextFieldclassPost(models.Model):content=BBCodeTextField()
此字段将存储BBCode内容和相应的HTML标记这样一个字段的HTML内容可以使用其rendered属性显示在任何模板中:
{{ post.content.rendered }}
And more…
有关如何使用BBCode解析器以及如何定义自定义BBCode标记、占位符和smilies的所有详细信息,请转到documentation
License
疯牛病。有关详细信息,请参见LICENSE。