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解析器带有内置标记(默认标记;bu等),并允许使用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

Authors

摩根·奥伯特(@ellmetha)和contributors

License

疯牛病。有关详细信息,请参见LICENSE

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java返回调用函数中的更新值   java如何停止小程序中计数变量的错误递增?   java Firebase数据库如何从1引用和等于2引用中获取一些值以获取其键和值   用于从SD卡获取图像的java FileNotFoundException   带有扫描仪的Java应用程序中出现字符串错误。Next()与NextLine()以及为什么我会出错?   java刷新JTable,以便显示插入的数据   java IE不支持通过JSF Trinidad的SVG查看器   Java USB游戏控制器库   java JSON解析错误:无法构造实体类的实例   web服务java。lang.NoClassDefFoundError:com/sun/tools/javac/Main SOAP UI   C++调用GetFieldID在JNI中恢复自定义java类成员ID时,陷入了奇怪的崩溃   java JavaFX从gui接收事件后返回主线程   java将模拟注入Spring测试Mockito+Spring+TestNG   java如何调用ArrayList中的每个数组并按年龄对ArrayList进行排序?