vanilla / nbbc

NBBC BBCode 解析库的 composer 兼容分支。

维护者

详细信息

github.com/vanilla/nbbc

源代码

v2.6.0 2024-04-16 19:34 UTC

README

Build Status Packagist Version

概述

NBBC 是一个高速、可扩展、易于使用的验证 BBCode 解析器,无论输入多么混乱,它都接受 BBCode 作为输入并生成符合 XHTML 1.0 Transition 标准的标记作为输出。它包含对大多数常见 BBCode 的内置支持,以及外部维基支持、图像库支持、标准表情符号库,并且通过其强大的 API,甚至可以将其转换为验证 HTML 解析器!

NBBC 经过良好测试,其输出与包含一百多个不同测试的单元测试套件进行验证。它完全用 PHP 编写,使用干净的、命名空间友好的、面向对象的代码,并且与 PHP 5.4 及以上版本兼容。

虽然灵活且功能强大,但 NBBC 也旨在易于使用,并且是大多数现有 BBCode 解析解决方案的简单替换。在许多情况下,它可以在您的项目中仅用两到三行代码实现。在您的项目中,只需要一个 PHP 源文件,这是一个紧凑、优化的文件,它将自动从包含的带有大量注释的原始 PHP 源文件生成。

与其他许多开源软件包一样,它也有良好的文档!超过 50 页的文档,包括包含许多示例的程序员手册和完整文档的 API,您将永远不会在使用它时迷路。

NBBC 根据 BSD 开源许可证发布,可以免费用于任何项目,用于任何目的,包括商业和非商业目的。它是从其作者在处理类似产品可疑质量时的挫败感中创建的。

简而言之,NBBC 是您在网站上实现 BBCode 的理想包。

NBBC v2.x 与 v1.x 之间的变化

2.x 版本与 1.x 版本的 NBBC 稍微破坏了向后兼容性,这就是为什么它被赋予了主要版本号更新,尽管没有添加任何显著的功能。以下是差异的摘要

  • 所有核心类都已移动到 Nbbc 命名空间,以支持 PSR-4 自动加载,并成为完整的 composer 库。
  • 不再支持 PHP 4。现在所需的最低 PHP 版本是 PHP 5.4。
  • BBCode 类上的所有属性都已保护,并且现在必须使用获取器/设置器访问。
  • URL 自动检测已被重写。它支持更一般的案例,但它已删除对一些边缘案例的支持,例如具有 IP 地址域的电子邮件地址。
  • 图像和表情符号不再检查文件是否在本地存在。这也去除了自动生成的图像大小。

除了这些破坏向后兼容性的更改之外,还有一些其他更改,不应该破坏向后兼容性

  • 测试已移动到 PHPUnit 测试套件。
  • EmailAddressValidator 的调用已替换为 PHP 的 filter_var() 函数。
  • BBCode 类中删除了对 Profiler 的调用。现在有很多不需要膨胀代码的跟踪工具。
  • 尽可能删除了 @ 错误静默运算符。

致谢

  • NBBC最初由Sean Werkema于2008年10月开发,大部分核心代码都是他的。他在2010年9月最后正式工作于它,之后它闲置了几年,期间他从事其他事情,主要是关于有偿工作和妻子孩子。他的最后提交是在 v1.4.5 上。
  • Theyak于2013年将此项目从SourceForge导入到Github,并在此期间进行了一些维护工作,包括修复bug和添加了一些小功能,从2013年5月开始。这个存储库的Git历史可以追溯到这个时间点,将之前的Subversion历史压缩为一次提交。
  • Vanilla Forums Team对Theyak的NBBC副本进行了重大工作,以支持现代PHP 5/6/7,他们负责v2.x及以后的版本。

许可证

如上所述,NBBC的大部分代码由Sean Werkema编写,该代码的版权仍归他所有。还有一些文件将版权分配给了Vanilla Forums Inc。额外的版权仅适用于Vanilla Forums Inc.所做的更改。

此库将始终采用BSD v2开源许可证,许可证副本如下

版权所有 © 2008-10,Sean Werkema。保留所有权利。

部分版权所有 © Vanilla Forums Inc. 保留所有权利。

在满足以下条件的情况下,允许以源代码和二进制形式重新分配和使用,无论是否修改

  • 源代码的重新分配必须保留上述版权声明、本条件列表和以下免责声明。

  • 以二进制形式重新分配必须复制上述版权声明、本条件列表和以下免责声明在随分布提供的文档和其他材料中。

本软件由Sean Werkema和Vanilla Forums Inc.提供,“现状”且不承担任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论这种损害是由于何种原因造成的,无论是在合同、严格责任还是侵权(包括疏忽或其他)中产生的,即使被告知此类损害的可能性。