sloyakuza / laravel-joypixel-emojis
Laravel helper for Joypixels emojis
Installs: 1 739
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.4|^8.0
- illuminate/support: ^6|^7|^8|^9|^10
- joypixels/emoji-toolkit: ^6
Suggests
- joypixels/assets: If you want to serve the emojione assets yourself
README
Laravel package to make it easier working with the modern emojis from Joypixels.
installation
Via Composer
$ composer require "sloyakuza/laravel-joypixel-emojis"
$ composer update
If you are on a Laravel that does not have Auto Discovery or you have it disabled then you need to add the following to your config/app.php
file:
Add the ServiceProvider to the providers array in config/app.php
sloyakuza\LaravelJoyPixels\LaravelJoyPixelsServiceProvider::class,
Add this to the aliases array in config/app.php
'LaravelJoyPixels' => sloyakuza\LaravelJoyPixels\LaravelJoyPixelsFacade::class,
Config:
$ php artisan vendor:publish --tag=config --provider="sloyakuza\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"
Usage
LaravelJoyPixels::toShort($str); // - native unicode -> shortnames LaravelJoyPixels::shortnameToImage($str); // - shortname -> images LaravelJoyPixels::unicodeToImage($str); // - native unicode -> images LaravelJoyPixels::toImage($str); // - native unicode + shortnames -> images (mixed input)
Blade (equivalent to LaravelJoyPixels::toImage($str)
):
🚨 The output is not escaped so be careful with what you pass into @joypixels
.
More details about how toImage($str)
works can be found at https://github.com/Ranks/emojione/blob/master/examples/PHP.md
Example
You want to let users put emoji a comment.
When you are saving a comment, you might want to run the content through LaravelJoyPixels::toShort($str)
to convert 😄
and other emoji to :smile:
etc.
Comment::create([ 'content' => LaravelJoyPixels::toShort(request('content')) ]);
So if someone leaves a comment like This is an awesome comment 😄🔥
it will be saved as This is an awesome comment :smile: :fire:
In your view where you display your comments you can use
@joypixels($comment->content)
and that will convert :smile:
and 😄
to the emojione equivalent.
Assets
By default it will use the assets from JSDelivr.
Remember to run this before trying to publish any of the assets:
composer require joypixels/assets
If you want to serve the assets yourself you can publish them with the following commands. Remember to update config/joypixels.php
PNG files in sizes 32/64/128:
$ php artisan vendor:publish --tag=public --provider="sloyakuza\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"
In config/joypixels.php
specify the local path. Remember to specify which size you want in the path (32/64/128).
'imagePathPNG' => '/vendor/joypixels/png/64/',
Sprites
If you want to use sprites:
$ php artisan vendor:publish --tag=sprites --provider="sloyakuza\LaravelJoyPixels\LaravelJoyPixelsServiceProvider"
In config/joypixels.php
enable sprites:
'sprites' => true, 'spriteSize' => 32, // 32 or 64
Add the stylesheet to your HTML:
<link rel="stylesheet" href="/vendor/joypixels/sprites/emojione-sprite-{{ config('emojione.spriteSize') }}.min.css"/>