English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
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
.
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 do código de e-mail. O mecanismo 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 sob medida para você.
Nossa implementação do MJML serve como um invólucro para a API oficial do MJML. Ele permite a compilação conveniente do MJML em HTML diretamente dentro do PHP, sem a necessidade do NodeJS. Este pacote é ideal para aplicativos PHP que desejam incorporar o MJML sem a complicação de instalar o NodeJS e o MJML CLI.
// Sem o 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 o LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Com o Laravel e HTML minificadoMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Primeiro, adicione o seguinte ao seu arquivo composer.json
para instruir nosso pacote a baixar 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 ter os binários necessários carregados tanto para o ambiente local quanto para o de produção.
Por padrão, all
irá baixar todos os binários que suportamos. Recomendamos limitar isso aos sistemas operacionais e arquiteturas de que você precisa para economizar largura de banda e tempo de instalação. Os seguintes são os binários disponíveis.
Sistema Operacional | Arquitetura | Comando de 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 |
Em seguida, instale o pacote PHP executando o seguinte comando do composer:
composer require defectivecode/mjml
É isso! Se estiver usando o Laravel, nosso pacote será instalado automaticamente usando a descoberta de pacotes do Laravel.
Veja o uso com Laravel abaixo se você estiver usando o Laravel.
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>');
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>');
Para renderizar MJML, basta passar sua string MJML para o método render
na fachada MJML:
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>');
Para validar MJML, basta passar 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>');
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
em 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.
Todas as opções de configuração podem ser definidas chamando os seguintes métodos diretamente no objeto MJML.
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 pelos seguintes pontos:
preprocessors
- Esta opção não está disponível. Por favor, abra uma solicitação de pull se você quiser adicionar esta opção.minifyOptions
- Usamos o html-minifier-terser
, enquanto o pacote oficial usa o html-minifier
para minificação. Decidimos trocar o processador porque o html-minifer
não é mais mantido e tem alguns problemas de segurança associados a ele.Nosso pacote usa as seguintes fontes por padrão:
Você pode alterar as fontes usando os seguintes métodos:
addFont(string $font, string $url)
- Adiciona uma fonte à lista de fontes.removeFont(string$font)
- Remove uma fonte da lista de fontes.setFonts(array $fonts)
- Define a lista de fontes. Você deve fornecer um array de fontes neste formato: ['nome-da-fonte' => 'url-da-fonte']
.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()
.
Por padrão, nosso pacote incluirá qualquer tag mj-include
. Você pode ajustar esse comportamento chamando o método ignoreIncludes(bool $ignore)
.
Nosso pacote irá formatar o HTML usando o js-beautify
com as seguintes opções padrão:
Embora o
js-beautify
use snake_case para fornecer opções, você deve usar camelCase ao usar nosso pacote. Fizemos essa escolha para manter nosso pacote consistente com o restante 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:
setBeautifyOptions(array $options)
- Define as opções do js-beautify
.addBeautifyOption(string $option, mixed $value)
- Adiciona uma opção do js-beautify
.removeBeautifyOption(string $option)
- Remove uma opção do js-beautify
.Nosso pacote irá minificar o HTML usando o 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:
setMinifyOptions(array $options)
- Define as opções do html-minifier-terser
.addMinifyOption(string $option, mixed $value)
- Adiciona uma opção do html-minifier-terser
.removeMinifyOption(string $option)
- Remove uma opção do html-minifier-terser
.Nosso pacote irá validar o MJML usando o nível de validação soft
por padrão. Você pode alterar isso usando o método validationLevel(ValidationLevel $validationLevel)
. Os seguintes níveis de validação estão disponíveis:
strict
- Seu documento está passando por validação e não é renderizado se tiver algum erro.soft
- Seu documento está passando por validação e é renderizado, mesmo se tiver erros.skip
- Seu documento é renderizado sem passar por validação.Nosso pacote usará o diretório .
por padrão. Você pode alterar isso chamando o método filePath(string $path)
.
Não fornecemos nenhuma opção de juice por padrão. Você pode adicionar opções de juice usando os seguintes métodos:
setJuiceOptions(array $options)
- Define as opções de juice.addJuiceOption(string $option, mixed $value)
- Adiciona uma opção de juice.removeJuiceOption(string $option)
- Remove uma opção de juice.setJuicePreserveTags(array $tags)
- Define as tags de preservação de juice.addJuicePreserveTag(string $tag, mixed $value)
- Adiciona uma tag de preservação de juice.removeJuicePreserveTag(string $tag)
- Remove uma tag de preservação de juice.Obrigado por escolher nosso pacote de código aberto! Por favor, reserve um momento para verificar estas diretrizes de suporte. Elas vão te ajudar a aproveitar ao máximo nosso projeto.
Nosso projeto de código aberto é impulsionado por nossa incrível comunidade. Se você tiver perguntas ou precisar de assistência, o StackOverflow e outros recursos online são suas melhores opções.
A realidade de gerenciar um projeto de código aberto significa que não podemos resolver imediatamente todos os bugs relatados ou solicitações de recursos. Priorizamos os problemas na seguinte ordem:
Bugs que impactam nossos produtos pagos sempre serão nossa maior prioridade. Em alguns casos, podemos resolver apenas os bugs que nos afetam diretamente.
Se você identificou um bug e tem uma solução, por favor, envie um pull request. Após os problemas que afetam nossos produtos, damos a próxima maior prioridade a essas correções orientadas pela comunidade. Depois de revisado e aprovado, mesclaremos sua solução e daremos crédito à sua contribuição.
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.
O código aberto prospera quando sua comunidade está ativa. Mesmo que você não esteja corrigindo bugs, considere contribuir por meio de melhorias de código, atualizações de documentação, tutoriais ou ajudando outras pessoas nos canais da comunidade. Nós incentivamos fortemente a todos, como uma comunidade, a ajudar a apoiar o trabalho de código aberto.
Para reiterar, a DefectiveCode dará prioridade aos bugs com base em como eles impactam nossos produtos pagos, pull requests da comunidade e suporte financeiro recebido para os problemas.
Direitos autorais © Defective Code, LLC. Todos os direitos reservados
Por meio deste, é concedida permissão, 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 de permitir que pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de 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 A, GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA E NÃO VIOLAÇÃO. EM NENHUMA HIPÓTESE OS AUTORES OU DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS OPERAÇÕES NO SOFTWARE.