跳转到主要内容

一个基于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 标签、占位符和笑脸的详细信息,请参阅文档

作者

Morgan Aubert (@ellmetha) 和 贡献者

许可证

BSD。有关更多详细信息,请参阅 LICENSE

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源分布

django_precise_bbcode-1.2.16.tar.gz (27.3 kB 查看哈希值

上传时间

构建分布

django_precise_bbcode-1.2.16-py3-none-any.whl (38.6 kB 查看哈希值

上传于 Python 3

支持者