Social Meta for those who doesn't know for what it for
agenciafmd/laravel-social-meta is a Laravel package for social meta for those who doesn't know for what it for.
It currently has 0 GitHub stars and 4.842 downloads on Packagist.
Install it with composer require agenciafmd/laravel-social-meta.
Discover more Laravel packages by agenciafmd
or browse all Laravel packages to compare alternatives.
Last updated
Gera as meta tags de SEO / Open Graph / Twitter com um único componente Blade e, quando nenhuma imagem é informada, cria automaticamente a imagem de compartilhamento (Open Graph) com o logo, o título e a URL da página.
composer require agenciafmd/laravel-social-meta:dev-master
O service provider e o alias OpenGraphImage são registrados automaticamente (package discovery).
Publique o arquivo de configuração (config/social-meta.php):
php artisan vendor:publish --tag=social-meta:config
Nele ficam as dimensões e cores do card, a posição do logo e as fontes do título e da URL. As chaves de facebook sobrescrevem as de default.
| Chave | Padrão |
|---|---|
| default.card | 600 x 314, fundo #f7f7f7, cor #191919 |
| default.logo.path | resource_path('images/logo.png') |
| default.title.font.file | open-sans-semi-bold.ttf do pacote, tamanho 24 |
| default.title.maxlength | 48 caracteres por linha (quebra em várias linhas) |
| default.url.font.file | open-sans-regular.ttf do pacote, tamanho 14 |
O logo em
resources/images/logo.pngprecisa existir na aplicação.
Para customizar as fontes, publique-as em storage/social-meta/fonts:
php artisan vendor:publish --tag=social-meta:assets
Não esqueça de ajustar os paths das fontes em
config/social-meta.php.
Dentro do seu master.blade.php (obrigado Blade UI Kit):
<x-social-meta
title="{{ $__env->yieldContent('title', 'A cultura come a estratégia no café da manhã.') }} | {{ config('app.name') }}"
description="{{ $__env->yieldContent('description') }}"
/>
Nas views filhas:
@extends('agenciafmd/frontend::master')
@section('title', 'A cultura come a estratégia no café da manhã.')
@section('description', 'Esta é uma frase de Peter Drucker, considerado o pai da administração moderna.')
| Atributo | Padrão | Descrição |
|---|---|---|
| title | — (obrigatório) | Usado no <title> e no og:title |
| description | '' | description e og:description (omitidos quando vazio) |
| type | website | og:type |
| card | summary_large_image | twitter:card |
| image | '' | og:image; quando vazio, a imagem é gerada automaticamente |
| url | url()->current() | og:url e texto impresso na imagem gerada |
| author | Agência F&MD | author |
<title>A cultura come a estratégia no café da manhã | Laravel</title>
<meta name="twitter:card" content="summary_large_image" />
<meta property="og:type" content="website" />
<meta property="og:title" content="A cultura come a estratégia no café da manhã | Laravel" />
<meta name="description" content="Esta é uma frase de Peter Drucker, considerado o pai da administração moderna." />
<meta property="og:description" content="Esta é uma frase de Peter Drucker, considerado o pai da administração moderna." />
<meta property="og:image" content="http://starternovo.local/storage/open-graph/facebook/a-cultura-come-a-estrategia-no-cafe-da-manha.png" />
<meta property="og:url" content="http://starternovo.local" />
<meta property="og:locale" content="pt_BR" />
<meta property="og:site_name" content="Laravel" />
<meta name="author" content="Agência F&MD" />

A imagem é gerada com o título (a parte antes do último |) e gravada uma única vez em open-graph/{type}/{slug-do-titulo}.png no disco padrão. Para gerar uma nova versão, apague o arquivo.
Também é possível usar o serviço diretamente:
use Facades\Agenciafmd\SocialMeta\Services\OpenGraphImage;
$url = OpenGraphImage::generate('Título do artigo', 'https://fmd.ag/blog');
Coloque no routes/web.php e acesse /debug para visualizar o card sem gravá-lo:
use Facades\Agenciafmd\SocialMeta\Services\OpenGraphImage;
Route::get('/debug', function () {
return OpenGraphImage::render();
});
Os testes ficam em tests/ e usam o Tests\TestCase da aplicação, então são executados de dentro do projeto que instala o pacote:
vendor/bin/pest packages/agenciafmd/laravel-social-meta/tests
Este pacote é software livre e está disponível nos termos da licença MIT.