Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

# Aviso de Tradução

Este documento foi traduzido automaticamente. Se houver erros de tradução, por favor abra um pull request no projeto e adicione o arquivo traduzido em docs/{Código ISO 639-1}.md.

Introdução

MJML é uma linguagem de marcação especificamente projetada para simplificar o processo de codificação de e-mails responsivos. Sua sintaxe semântica garante facilidade e simplicidade, enquanto sua extensa biblioteca de componentes padrão acelera o desenvolvimento e reduz a complexidade da sua base de código de e-mail. O motor de código aberto do MJML gera HTML responsivo de alta qualidade que adere às melhores práticas. Se você já experimentou as frustrações de trabalhar com o Outlook, este pacote é feito para você.

Nossa implementação do MJML serve como um wrapper para a API oficial do MJML. Ela permite a compilação conveniente de MJML em HTML diretamente dentro do PHP, sem a necessidade de NodeJS. Este pacote é ideal para aplicações PHP que desejam incorporar MJML sem o incômodo de instalar NodeJS e o CLI do MJML.

Exemplo

// Sem Laravel
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// HTML Minificado
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Com Laravel
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Com Laravel e HTML minificado
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Instalação

  1. Primeiro, adicione o seguinte ao seu arquivo composer.json para instruir nosso pacote a puxar os binários corretos para o seu sistema operacional quando nosso pacote for instalado. Os binários serão baixados após você executar install, update ou dump-autoload.

    {
    "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]
    }

    O binário MJML será obtido do nosso CDN e salvo na pasta "bin" deste pacote durante a instalação ou atualização do composer. Certifique-se de que você tenha os binários necessários carregados tanto para seus ambientes locais quanto de produção.

    Por padrão, all puxará todos os binários que suportamos. Recomendamos restringir isso aos sistemas operacionais e arquiteturas que você precisa para economizar em largura de banda e tempos de instalação. A seguir estão os binários disponíveis.

    Sistema Operacional Arquitetura Comando Pós-Atualização do Composer
    Todos Todos DefectiveCode\MJML\PullBinary::all
    Darwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    Linux arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    Linux x64 DefectiveCode\MJML\PullBinary::linux-x64
  2. Em seguida, instale o pacote PHP executando o seguinte comando do composer:

    composer require defectivecode/mjml
  3. É isso! Se estiver usando Laravel, nosso pacote será instalado automaticamente usando a descoberta de pacotes do Laravel.

Uso (Sem Laravel)

Veja o uso com Laravel abaixo se você estiver usando Laravel.

Renderizando MJML

Para renderizar MJML, basta passar sua string MJML para o método render:

use DefectiveCode\MJML;
 
$html = (new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Validando MJML

Para validar MJML, basta passar sua string MJML para o método isValid:

use DefectiveCode\MJML;
 
$isValid = (new MJML)->isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
# Uso (Com Laravel)
 
## Renderizando MJML
 
Para renderizar MJML, simplesmente passe sua string MJML para o método `render` na fachada MJML:
 
```php
use DefectiveCode\MJML\Facades\MJML;
 
$html = MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Validando MJML

Para validar MJML, simplesmente passe sua string MJML para o método isValid na fachada MJML:

use DefectiveCode\MJML\Facades\MJML;
 
$isValid = MJML::isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Configuração

Você pode publicar o arquivo de configuração usando o seguinte comando:

php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"

Isso criará um arquivo de configuração mjml.php na sua pasta config. Todas as opções listadas no arquivo de configuração são passadas para o objeto config quando você usa a fachada MJML.

# Configuração
 
Todas as opções de configuração podem ser definidas chamando os seguintes métodos diretamente no objeto MJML.
 
```php
use DefectiveCode\MJML;
 
$html = (new MJML)
->setMinify(true)
->setBeautify(false)
->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Nosso pacote segue a mesma configuração do pacote oficial do MJML exceto pelas seguintes diferenças:

Fontes

Nosso pacote usa as seguintes fontes por padrão:

Você pode mudar as fontes usando os seguintes métodos:

Comentários

Os comentários são mantidos por padrão. Se você deseja remover os comentários, pode usar o método removeComments().

Você também pode reverter o removeComments() chamando o método keepComments().

Ignorar Inclusões

Por padrão, nosso pacote incluirá quaisquer tags mj-include. Você pode ajustar este comportamento chamando o método ignoreIncludes(bool $ignore).

Embelezar

Nosso pacote embelezará o HTML usando js-beautify com as seguintes opções padrão:

Enquanto js-beautify usa snake_case para fornecer opções, você deve usar camelCase ao usar nosso pacote. Fizemos esta escolha para manter nosso pacote consistente com o resto das opções de configuração. Nosso pacote converterá automaticamente as opções camelCase para snake_case.

Você pode substituir qualquer uma dessas opções fornecendo uma configuração válida do js-beautify usando os seguintes métodos:

Minificar

Nosso pacote minificará o HTML usando html-minifier-terser com as seguintes opções padrão:

Você pode substituir qualquer uma dessas opções fornecendo uma configuração válida do html-minifier-terser usando os seguintes métodos:

Nível de Validação

Nosso pacote validará o MJML usando o nível de validação soft por padrão. Você pode mudar isso usando o método validationLevel(ValidationLevel $validationLevel). Os seguintes níveis de validação estão disponíveis:

Caminho do Arquivo

Nosso pacote usará o diretório . por padrão. Você pode mudar isso chamando o método filePath(string $path).

Juice

Não fornecemos nenhuma opção de juice por padrão. Você pode adicionar opções de juice usando os seguintes métodos:

Diretrizes de Suporte

Obrigado por escolher nosso pacote de código aberto! Por favor, reserve um momento para conferir estas diretrizes de suporte. Elas ajudarão você a tirar o máximo proveito do nosso projeto.

Suporte Orientado pela Comunidade

Nosso projeto de código aberto é impulsionado por nossa incrível comunidade. Se você tiver perguntas ou precisar de assistência, StackOverflow e outros recursos online são suas melhores opções.

Bugs e Priorização de Funcionalidades

A realidade de gerenciar um projeto de código aberto significa que não podemos resolver todos os bugs relatados ou pedidos de funcionalidades imediatamente. Priorizamos os problemas na seguinte ordem:

1. Bugs que Afetam Nossos Produtos Pagos

Bugs que impactam nossos produtos pagos sempre serão nossa maior prioridade. Em alguns casos, podemos resolver apenas bugs que nos afetam diretamente.

2. Pull Requests da Comunidade

Se você identificou um bug e tem uma solução, por favor, envie um pull request. Após resolver os problemas que afetam nossos produtos, damos a próxima maior prioridade a essas correções impulsionadas pela comunidade. Uma vez revisada e aprovada, integraremos sua solução e creditaremos sua contribuição.

3. Suporte Financeiro

Para problemas fora das categorias mencionadas, você pode optar por financiar sua resolução. Cada problema aberto está vinculado a um formulário de pedido onde você pode contribuir financeiramente. Priorizamos esses problemas com base no valor do financiamento fornecido.

Contribuições da Comunidade

O código aberto prospera quando sua comunidade é ativa. Mesmo que você não esteja corrigindo bugs, considere contribuir através de melhorias no código, atualizações na documentação, tutoriais ou ajudando outros nos canais da comunidade. Incentivamos fortemente todos, como comunidade, a ajudar a apoiar o trabalho de código aberto.

Para reiterar, a DefectiveCode priorizará bugs com base em como eles impactam nossos produtos pagos, pull requests da comunidade e o suporte financeiro recebido para os problemas.

Licença - Licença MIT

Copyright © Defective Code, LLC. Todos os direitos reservados

A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido façam isso, sujeitas às seguintes condições:

O aviso de copyright acima e esta permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTE DE, FORA OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

MJML - Defective Code