vanilla / nbbc
NBBC BBCode 解析库的 composer 兼容分支。
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~8
This package is auto-updated.
Last update: 2024-09-16 20:22:19 UTC
README
概述
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.提供,“现状”且不承担任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论这种损害是由于何种原因造成的,无论是在合同、严格责任还是侵权(包括疏忽或其他)中产生的,即使被告知此类损害的可能性。