schibsted-tech-polska / php-content-stylizer
施维布斯特媒体平台数据内容美化器
1.0.2
2017-02-15 12:23 UTC
Requires
- php: >=5.6.0
- ext-mbstring: *
Requires (Dev)
- phpmd/phpmd: ^2.6
- phpunit/phpunit: ^5.7
- sebastian/phpcpd: ^2.0
- squizlabs/php_codesniffer: ^2.8
This package is not auto-updated.
Last update: 2024-09-23 16:06:27 UTC
README
此库是为了支持将施维布斯特媒体平台文章格式版本5中引入的文本对象转换为PHP中的HTML而编写的。
使用它,您需要创建Stylizer实例并定义支持的标签列表。有两种方法可以定义标签列表。然后,您可以使用getHtml
方法传递文本和一个包含标记的数组,并将HTML代码作为输出接收。
基本用法
定义标签列表(方法1)
$stylizer = new \ContentStylizer\Stylizer([
[
'beginning' => '<strong>',
'end' => '</strong>',
'type' => 'strong',
],
]);
定义标签列表(方法2)
$stylizer = new \ContentStylizer\Stylizer();
$stylizer->addTag('strong', '<strong>', '</strong>');
将文本转换为HTML
$text = 'Sample text';
$markups = [
[
'length' => 6,
'offset' => 0,
'type' => 'strong',
],
];
$html = $stylizer->getHtml($text, $markups);
标签内的参数
任何标签的beginning
和end
属性都可以使用字符串或匿名函数来定义。第二种方法允许我们在HTML创建过程中添加一些逻辑,并使用传递给标记对象的参数。
让我们定义link
标签
$stylizer->addTag('link', function (\stdClass $params) {
return '<a href="' . $params->uri . '" target="_blank">;
}, '</a>');
然后我们可以使用link
标记
$html = $stylizer->getHtml('Our link', [
[
'length' => 4,
'offset' => 4,
'type' => 'link',
'uri' => 'http://www.example.com',
],
]);
请注意,$params
对象包含标记的所有属性,除了length
、offset
和type
,这意味着在这个例子中它只包含uri
参数。
单标签
还可以定义单标签,例如换行符 - Stylizer将没有定义end
参数的每个标签视为单标签。
可以在构造函数传入的数组中定义它
...
[
'beginning' => '<br>',
'type' => 'br',
],
...
我们也可以使用addTag
方法来定义它
$stylizer->addTag('br', '<br>');
如果我们定义了br
标签,Stylizer也会在文本中每个PHP_EOL
出现之前添加换行符。
测试
此库包含单元测试和一些其他CI工具,可以使用Node.js轻松运行。为此,安装Node.js环境,然后是Grunt CLI
sudo npm install -g grunt-cli
和项目依赖项
npm install
要开始测试,只需执行
grunt test