csrdelft / bb
C.S.R. BB 解析器
v1.3.6
2023-03-09 22:59 UTC
Requires
- php: >=7.3.14
Requires (Dev)
README
此软件包最初基于 eamBBParser。一些解析器内部实现仍然基于该实现。
安装
使用 composer 安装
composer require csrdelft/bb
使用方法
可以使用 DefaultParser
或实现自己的解析器。
$parser = new \CsrDelft\bb\DefaultParser(); echo $parser->getHtml('[h=1]Hello World[/h]');
标签
默认标签包括
自定义标签
标签必须扩展 \CsrDelft\bb\BbTag
类。标签必须实现 parse($arguments)
和 getTagName()
方法。
getTagName
方法返回一个字符串或字符串列表,表示此标签的名称。
parse
方法接收一个参数映射。可以使用 readContent
方法检索标签的内容,此内容在接收时由解析器解析。解析器读取输入,直到找到结束标签。readContent
为禁止在此标签中出现的标签提供了可选参数。例如,一个 [sup]
标签不能包含另一个 sup 标签或 sub 标签。
标签可以访问一个环境,默认为 CsrDelft\bb\BBenv
类型(可覆盖)。
自定义标签示例
class BbSuperscript extends BbTag { public static function getTagName() { return 'sup'; } public function render() { return '<sup class="bb-tag-sup">' . $this->getContent() . '</sup>'; } public function parse($arguments = []) { $this->readContent(['sub', 'sup']); } }
自定义解析器
自定义解析器必须扩展 Parser
并在 $tags
字段中包含一个标签列表。参见 DefaultParser
以获取默认标签列表。