Sir Trevor JS in Laravel project

Installs: 2 640

Dependents: 0

Stars: 38

Watchers: 3

Forks: 12

Open Issues: 0


Integrate the tool Sir Trevor JS in a Laravel 4/5 project.


This package is available through Packagist and Composer.

For Laravel 5.1 version view & amp, use the branch master : "caouecs/sirtrevorjs": "~2.2.0"

For Laravel 5.1 version base, use the branch v2.1 : "caouecs/sirtrevorjs": "~2.1.0"

For Laravel 5.0, use the branch v2 : "caouecs/sirtrevorjs": "~2.0.0"

For Laravel 4, use the branch laravel4 : "caouecs/sirtrevorjs": "~1.4"


In your app/config/app.php, add in aliases :

'SirTrevorJs' => 'Caouecs\Sirtrevorjs\SirTrevorJs',
'STConverter' => 'Caouecs\Sirtrevorjs\SirTrevorJsConverter'

Service Provider

If you want to use routing, controllers, views directly in your project, in your app/config/app.php, add "Caouecs\Sirtrevorjs\SirtrevorjsServiceProvider" to your list of providers.


To get tweets, this project uses thujohn/twitter. Please with the page of the project to know how to install and configure.

Configuration file

Next, you must migrate config :

php artisan vendor:publish caouecs/sirtrevorjs

After installation, the config file is located at app/config/packages/caouecs/sirtrevorjs/sir-trevor-js.php.

You can define :

  • the path for image upload
  • the route for upload image
  • the route for tweet
  • the path of Sir Trevor files
  • the list of block types
  • the language
  • the paths for Eventable.js and Underscore.js
  • the view
  • configuration for blocks
    • soundcloud
    • gettyimages
  • etc...

SirTrevorJs class


For stylesheets :


For scripts, in your Blade files :


Fix for image block

Function to fix a problem with image block when you add a new image :

$text = SirTrevorJs::transformText($text);

Find first image

Get first image in text with findImage method :

string SirTrevorJS::findImage(string $text);

In return, you have url of image or empty string.

Find elements by blocktypes

Get all elements in text, in specified blocktype with find method :

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

In return, you can have :

  • array, if you choose "array" for $output
  • json, if you choose "json" for $output
  • false, if the script doesn't find an occurence of blocktype


For Laravel 5.0 : SirTrevorJsController

This class proposes two things :

  • upload image where you want
  • get tweets

The routes are in the provider.

For Laravel 5.1 : TraitSirTrevorJsController

This trait proposes two things :

  • upload image where you want
  • get tweets

Upload image

This project proposes a system for upload image, nothing to configure, just the directory_upload value in config file.

"directory_upload" => "img/uploads"


This project proposes a system to get tweets. I use thujohn/twitter project.

SirTrevorJsConverter class


Convert text from Sir Trevor Js to html :

$convert = new SirTrevorJsConverter();

Or via SirTrevorJS class :

{{ SirTrevorJs::render($text) }}

Amp (experimental)

Convert text from Sir Trevor Js to Amp :

$convert = new SirTrevorJsConverter();

Define views

By default, you can define views in config file. But if you want to use multi views in your project, you can define a new view in the constructor of STConverter.

$convert = new SirTrevorJsConverter('sirtrevor::amp');


For the moment, the code can convert :