caouecs/sirtrevorjs

在Laravel项目中使用Sir Trevor JS


README

Quality Gate Status

将工具Sir Trevor JS集成到Laravel 5/6/7/8/9项目中。

安装

此包可通过PackagistComposer获取。

对于PHP 8版本,使用master分支"caouecs/sirtrevorjs": "~4.1.0"

对于PHP 7版本,使用v3.0分支"caouecs/sirtrevorjs": "~3.0.0"

对于Laravel >= 5.2版本的解析器,使用v2.5分支"caouecs/sirtrevorjs": "~2.5.0"

对于Laravel >= 5.1版本的js & amp,使用v2.4分支"caouecs/sirtrevorjs": "~2.4.0"

对于Laravel >= 5.1版本的fb articles,使用v2.3分支"caouecs/sirtrevorjs": "~2.3.0"

对于Laravel >= 5.1版本的view & amp,使用v2.2分支"caouecs/sirtrevorjs": "~2.2.0"

对于Laravel >= 5.1版本的base,使用v2.1分支"caouecs/sirtrevorjs": "~2.1.0"

对于Laravel 5.0,使用v2分支"caouecs/sirtrevorjs": "~2.0.0"

对于Laravel 4,使用laravel4分支"caouecs/sirtrevorjs": "~1.4"

请阅读选定分支中的README.md

服务提供者

如果您想在项目中直接使用路由、控制器、视图和绑定,请在您的app/config/app.php中,将"Caouecs\Sirtrevorjs\SirtrevorjsServiceProvider"添加到提供者列表中。

Twitter

为了获取推文,该项目使用了thujohn/twitter。请访问项目页面以了解如何安装和配置。

配置文件

接下来,您必须迁移配置

php artisan vendor:publish caouecs/sirtrevorjs

安装后,配置文件位于app/config/packages/caouecs/sirtrevorjs/sir-trevor-js.php

您可以定义

  • 图片上传的路径
  • 上传图片的路由
  • 推文的路由
  • Sir Trevor文件的路径
  • 块类型的列表
  • 自定义块
  • 语言
  • Eventable.js和Underscore.js的路径
  • 视图
  • 块的配置
    • soundcloud
    • gettyimages
  • 等等...

SirTrevorJs类

资源

对于样式表

    SirTrevorJs::stylesheets()

对于脚本,在您的Blade文件中

    SirTrevorJs::scripts()

图像块的修复

修复图像块在添加新图像时出现问题的函数

    string SirTrevorJs::transformText(string $text);

查找第一个图像

使用findImage方法在文本中获取第一个图像

    string SirTrevorJS::findImage(string $text);

返回结果中,您有图像的URL或空字符串。

通过块类型查找元素

使用 find 方法获取指定块类型的所有元素

    mixed SirTrevorJS::find(string $text, string $blocktype [, string $output = "json"])

返回结果可以是:

  • 数组,如果您将 $output 设置为 "array"
  • JSON,如果您将 $output 设置为 "json"
  • 如果脚本未找到块类型的实例,则返回 false

控制器

SirTrevorJsable

此特性提出两个要点:

  • 上传您想要的位置的图片
  • 获取推文

上传图片

本项目提出了一种上传图片的系统,无需配置,只需在配置文件中的 directory_upload 值。

    "directory_upload" => "img/uploads"

推文

本项目提出了一种获取推文系统。我使用了 thujohn/twitter 项目。

SirTrevorJsConverter 类

默认情况下,此类需要一个解析器、配置和视图。

您可以使用此类绑定:

    app('caouecs.sirtrevorjs.converter')

Html

将 Sir Trevor Js 中的文本转换为 html

    string app('caouecs.sirtrevorjs.converter')->toHtml($text)

这些方法返回包含 html 和 js 代码的字符串。

Amp

将 Sir Trevor Js 中的文本转换为 Amp

    string app('caouecs.sirtrevorjs.converter')->toAmp($text);

所有模块都有一个 Amp 版本,如果存在等效版本。

此方法返回一个包含 textjs 的数组。

Facebook Instant Articles

将 Sir Trevor Js 中的文本转换为 Facebook Instant Articles

    string app('caouecs.sirtrevorjs.converter')->toFb($text);

所有模块都有一个 FBArticles 版本,如果存在等效版本。

此方法返回包含 html 和 js 代码的字符串。

添加自定义块

您可以选择在配置文件中添加自定义块,或者通过扩展 SirTrevorJsConverter 类来添加它们。

配置

'customBlocks' => [
    'image_extended' => '\App\SirTrevorConverters\ImageExtendedConverter',
],

SirTrevorConverter

<?php
namespace App\SirTrevorConverters;

use \Caouecs\Sirtrevorjs\SirTrevorJsConverter;

class SirTrevorJsConverterEditor extends SirTrevorJsConverter
{
    /**
     * Custom blocks.
     *
     * @var array
     */
    protected $customBlocks = [
        'gallery' => '{Your namespace}\\Editor\\Converter\\GalleryConverterEditor',
        'readmore' => '{Your namespace}\\Editor\\Converter\\ReadMoreConverterEditor',
    ];
}

您需要在您的服务提供者中调用此类,在注册时:

$this->app->bind('editor.converter', function ($app) {
    return new App\SirTrevorConverters\SirTrevorJsConverterEditor(
        new LaravelParser(),
        config('sir-trevor-js'),
        'html'
    );
});

模块

目前,代码可以转换以下内容: