一个基于BBCode的Django集成...
项目描述
Django-precise-bbcode是一个Django应用程序,提供了一种基于BBCodes创建文本内容的方法。
BBCode是HTML的特殊实现。BBCode本身在风格上类似于HTML,标签用中括号[]而非<>包围,并且它提供了对显示什么和如何显示的更多控制。
此应用程序包括一个BBCode编译器,旨在将任何BBCode内容渲染为HTML,并允许在模型、表单和管理表单中使用BBCodes标签。BBCode解析器内置了标签(默认的标签如 b, u 等)并允许使用表情符号、自定义BBCode占位符和自定义BBCode标签。这些可以通过两种不同的方式添加
可以在Django管理面板中定义自定义标签并将它们存储到数据库中;这样做允许任何非技术管理员通过定义与每个标签相关的HTML替换字符串来添加BBCode标签
还可以通过定义一个旨在将给定的bbcode标签及其内容渲染为相应HTML标记的标签类来手动将标签注册到解析器中以供使用
文档
在线可浏览的文档可在https://django-precise-bbcode.readthedocs.org找到。
要求
Python 3.6+
Django 3.2+
PIL 或 Pillow(用于笑脸标签)
安装
直接运行
pip install django-precise-bbcode
安装后,您可以按照以下步骤配置项目以使用 django-precise-bbcode。
将 precise_bbcode 添加到项目设置模块中的 INSTALLED_APPS。
INSTALLED_APPS = (
# other apps
'precise_bbcode',
)
然后安装模型
python manage.py migrate
使用
渲染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>写一些 bbcodes!</strong>。
存储BBCodes
虽然您可以使用 Django 内置的 models.TextField 将您的 BBCode 内容添加到模型中,但一个常见的需求是同时存储 BBCode 内容和相应的 HTML 标记到数据库中。为了解决这个问题,django-precise-bbcode 提供了一个 BBCodeTextField。
from django.db import models
from precise_bbcode.fields import BBCodeTextField
class Post(models.Model):
content = BBCodeTextField()
此字段将存储 BBCode 内容和相应的 HTML 标记。然后可以通过使用其 rendered 属性在任何模板中显示此类字段的 HTML 内容。
{{ post.content.rendered }}
等等…
有关如何使用 BBCode 解析器以及如何定义自定义 BBcode 标签、占位符和笑脸的详细信息,请参阅文档。
许可证
BSD。有关更多详细信息,请参阅 LICENSE。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分布
构建分布
哈希值 for django_precise_bbcode-1.2.16-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6fc815c2a52202a6eb5a8bc562b770d760c6af1b719b833541b3b112e71229f2 |
|
MD5 | 8e816cbba52a7e4d796c667ed9c2d01a |
|
BLAKE2b-256 | 4169c207101d7eff5c0c4605371af042983cedd54dfef76d8920cbe1c9968c03 |