taylornetwork / make-html
一个将纯文本转换为HTML(包括链接)的特性。
Requires
- php: >=7.0.0
- illuminate/support: >=5.5
- taylornetwork/laravel-helpers: ^1.4
Requires (Dev)
- mockery/mockery: dev-master
- orchestra/testbench: ~3.0
README
这是一个用于Laravel的类和特性,可以将带有换行符和链接的文本转换为HTML。它还包括简单的HTML标签生成以及一个用于合并关联数组的辅助函数。
安装
通过Composer
$ composer require taylornetwork/make-html
依赖关系
TaylorNetwork\MakeHTML
会安装 TaylorNetwork\LaravelHelpers。Laravel 应该会自动发现该软件包,但如果您遇到问题,您可能需要手动包含提供者。
设置
此软件包已设置为自动发现,因此您应该直接可以使用。如果出现问题,请检查下面的手动设置。
手动设置
如果自动发现不起作用...
将服务提供者添加到 config/app.php
中的 providers 数组。
'providers' => [ TaylorNetwork\MakeHTML\MakeHTMLServiceProvider::class, ];
发布
运行
php artisan vendor:publish
这将把 makehtml.php
添加到您的配置目录。
使用
您可以通过将特性包含在您想要实现该功能的类中或创建该类的新实例来使用此软件包。
特性
将特性导入到您的类中。
use TaylorNetwork\MakeHTML\MakeHTML; class DummyClass { use MakeHTML; // Code }
MakeHTML 特性包括两个函数,以下为使用示例。
makeHTML (string $text)
接受一个参数,即您希望生成器解析的文本。
给定此示例变量 $text
$text = 'Example text with line breaks. And a link: http://example.com/page/1/2?q=This&that=other';
调用 makeHTML
$this->makeHTML($text);
返回
'Example text<br>with line<br>breaks. And a<br>link: <a href="http://example.com/page/1/2?q=This&that=other">example.com</a>'
getHTMLGeneratorInstance ()
不接受任何参数,并返回 HTMLGenerator 类的实例,如果不存在则创建一个。
$this->getHTMLGeneratorInstance();
您可以将 HTMLGenerator 类的任何方法链接到该实例以返回功能。
以下为类使用示例。
类
实例化类。
use TaylorNetwork\MakeHTML\HTMLGenerator; $instance = new HTMLGenerator();
可用方法
makeLinks (string $text)
将字符串中找到的任何链接转换为带有 <a>
标签的可点击链接。
将以基URL作为链接的标题。
例如
$textWithLink = 'I have a link http://example.com/page/1/2/3?query=string';
调用 makeLinks($textWithLink)
$instance->makeLinks($textWithLink);
返回
'I have a link <a href="http://example.com/page/1/2/3?query=string">example.com</a>'
convertLineEndings (string $text)
将所有换行符转换为HTML <br>
标签。
$textWithLineBreaks = 'This is text with line breaks.';
调用 convertLineEndings($textWithLineBreaks)
$instance->convertLineEndings($textWithLineBreaks);
返回
'This<br>is<br>text<br>with<br>line<br>breaks.'
makeHTML (string $text)
调用 convertLineEndings($text)
和 makeLinks($text)
并返回转换后的文本。
generateTag (string $tag, array $attributes, boolean $closeTag = true)
将生成具有任何给定属性的HTML标签。
要生成无属性的 <div>
标签
$instance->generateTag('div', []);
返回
'<div></div>'
要生成具有属性的 <div>
标签
$attributes = [ 'class' => 'example-class second-class third' 'data-attr' => 'value' ];
调用函数
$instance->generateTag('div', $attributes);
返回
'<div class="example-class second-class third" data-attr="value"></div>'
要生成具有属性并在标签之间添加数据的 <div>
标签,请添加 external
属性,然后所有内容都将添加到标签之间。
$attributes = [ 'class' => 'example-class', 'id' => 'div1', 'name' => 'some-name', 'external' => 'This is external data!', ];
调用函数
$instance->generateTag('div', $attributes);
返回
'<div class="example-class" id="div1" name="some-name">This is external data!</div>'
要生成一个 <div>
标签并保持它打开,以处理更多外部数据,例如。
$instance->generateTag('div', $attributes, false);
返回
'<div class="example-class" id="div1" name="some-name">This is external data!'
closeTag(string $tag)
关闭给定的标签
$instance->closeTag('div');
返回
'</div>'
魔术方法
您还可以通过调用您想要的标签后跟 Tag
来调用 generateTag($tag, $attributes)
。
要以这种方式生成一个 <div>
标签
$instance->divTag($attributes);
会为您调用 generateTag('div', $attributes)
。
配置
发布后的配置文件位于 config/makehtml.php
。
致谢
- 主要作者: Sam Taylor
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。