跳转到主要内容

高级BBCode类似标签解析器

项目描述

django-content-bbcode
=====================

BBCode类似解析器,用于Django应用程序。

此应用程序基于我在rk.edu.pl网站上使用的标签解析器。它与BBCode非常相似,但它被设计
以支持更高级的标签,提供更复杂的输出。我的使用示例

* 通过给定的slug将文章链接(根据文章是类别还是页面,可能应用不同的样式)
* 在文章中突出显示代码块
* 插入来自媒体的图片的缩略图(可选的alt文本、大小、标题等)

```
[rk:syntax lang="bash"]
export WORKON_HOME=~/Envs
mkdir -p $WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh
[/rk:syntax]
```

或者

```
[rk:art slug="some-article-slug"]
```

所以这是一个调用一些Python代码(甚至Django ORM)并返回动态输出的BBCode。


如何使用它
-------------
* 您可以从pypi安装它
```
pip安装django-content-bbcode
```

* 将 'content_bbcode' 添加到 INSTALLED_APPS
* 您将获得 'parse_content_bbcode' 模板标签,您可以在模板中使用它来解析应具有标签的文本
```
{% load parse_content_bbcode %}
{{ article.text|parse_content_bbcode|safe }}
```

代码中使用
-------------

您还可以手动解析标签
```
parser = cbcparser.ContentBBCodeParser()
result = parser.parse_tags(some_text)
```

设置和使用
-------------
您必须定义您要使用的标签的解析器。应用程序将在INSTALLED_APPS中的每个
应用程序中查找**tags.py**文件。在该文件中,它将查找**registered_tags**字典。

示例:https://github.com/riklaunim/django-content-bbcode/blob/master/content_bbcode_demo/demo_application/tags.py

字典键是标签的 *name*,例如 *rk:art* 的名称为 *art*。
字典值将是一个可调用对象,通常是一个接收两个参数的函数:字典列表和文本。

文本是我们需要替换标签的文本。
字典列表是给定标签的所有出现。


出现列表中的字典有少量键。
* 标签:我们需要替换的标签
* 属性:分配给标签的所有键值属性
* 代码:仅用于双标签(具有打开和关闭标签的标签)

```
[rk:mytag]代码[/rk:mytag]
```


通常您会遍历列表并将每个标签替换为某些内容。

最后,可调用对象应返回修改后的文本。

如果您想将 tags.py 放置在不同位置,则可以定义 ``CONTENT_BBCODE_SCAN_MODULES`` 为 'app_name': 'module_location' 的字典。

要更改默认标签前缀 ``rk``,请在 settings.py 中设置 ``CONTENT_BBCODE_PREFIX``。


运行测试
-------------
测试在 content_bbcode_demo.demo_application 中。克隆仓库并运行

```
pip install -r demo_requirements.txt
```

直接运行测试

```
python manage.py test content_bbcode_demo
```

使用 tox 在 Python 2.7 和 3.6 上进行测试

```
tox
```

项目状态
--------------
目前代码只是从我网站代码中提取出来后。它还需要一些重构/清理以及很可能是正则表达式改进,
但它可以工作,至少应该可以:)

我将尝试发布、提交一些真实的标签,例如 pygments 语法高亮显示等。

您可以在问题页面查看当前的待办事项列表。我也很乐意接受您的反馈、建议和拉取请求:)


致谢
-------
* 标签加载程序受到了 https://github.com/pozytywnie/django-javascript-settings 配置加载程序的启发

项目详情


下载文件

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

源分发

django-content-bbcode-0.1.1.tar.gz (4.7 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面