C.S.R. BB 解析器

v1.3.6 2023-03-09 22:59 UTC

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 以获取默认标签列表。