English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
# Avviso di Traduzione
Questo documento è stato tradotto automaticamente. Se ci sono errori di traduzione, si prega di aprire
una pull request sul
progetto e aggiungere il file tradotto a docs/{ISO 639-1 Code}.md
.
MJML è un linguaggio di markup specificamente progettato per semplificare il processo di codifica delle email responsive. La sua sintassi semantica garantisce facilità e semplicità, mentre la sua vasta libreria di componenti standard accelera lo sviluppo e riduce la complessità della tua base di codice email. Il motore open-source di MJML genera HTML di alta qualità, responsive e conforme alle migliori pratiche. Se hai sperimentato le frustrazioni di lavorare con Outlook, questo pacchetto è fatto su misura per te.
La nostra implementazione di MJML funge da wrapper per l'API ufficiale di MJML. Consente una comoda compilazione di MJML in HTML direttamente all'interno di PHP, senza la necessità di NodeJS. Questo pacchetto è ideale per le applicazioni PHP che desiderano incorporare MJML senza il fastidio di installare NodeJS e la CLI di MJML.
// Senza 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 minificato(new MJML)->minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Con LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Con Laravel e HTML minificatoMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Aggiungi prima di tutto il seguente codice al tuo file composer.json
per istruire il nostro pacchetto a scaricare i binari corretti per il tuo sistema operativo quando il nostro pacchetto viene installato. I binari verranno scaricati dopo aver eseguito install
, update
o dump-autoload
.
{ "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}
Il binario MJML verrà ottenuto dal nostro CDN e salvato nella cartella "bin" di questo pacchetto durante l'installazione o l'aggiornamento di composer. Assicurati di avere i binari necessari caricati sia per i tuoi ambienti locali che di produzione.
Per impostazione predefinita, all
scaricherà tutti i binari che supportiamo. Raccomandiamo di limitare questo ai sistemi operativi e di architettura di cui hai bisogno per risparmiare larghezza di banda e tempi di installazione. Di seguito sono riportati i binari disponibili.
Sistema Operativo | Architettura | Comando Post Update di Composer |
---|---|---|
Tutti | Tutti | 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 |
Successivamente, installa il pacchetto PHP eseguendo il seguente comando composer:
composer require defectivecode/mjml
Fatto! Se utilizzi Laravel, il nostro pacchetto verrà installato automaticamente utilizzando il package discovery di Laravel.
Vedi l'utilizzo con Laravel sotto se stai usando Laravel.
Per rendere MJML, basta passare la tua stringa MJML al metodo 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>');
Per validare MJML, basta passare la tua stringa MJML al metodo 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>');
# Utilizzo (Con Laravel) ## Rendering MJML Per rendere MJML, basta passare la tua stringa MJML al metodo `render` sulla facciata MJML: ```phpuse 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>');
Per validare MJML, basta passare la tua stringa MJML al metodo isValid
sulla facciata 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>');
Puoi pubblicare il file di configurazione utilizzando il seguente comando:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Questo creerà un file di configurazione mjml.php
nella tua cartella config
. Tutte le opzioni elencate nel file di configurazione
sono passate all'oggetto config
quando utilizzi la facciata MJML.
# Configurazione Tutte le opzioni di configurazione possono essere impostate chiamando direttamente i seguenti metodi sull'oggetto MJML. ```phpuse 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>' );
Il nostro pacchetto segue la stessa configurazione del pacchetto ufficiale MJML eccetto per i seguenti punti:
preprocessors
- Questa opzione non è disponibile. Si prega di aprire una pull request se si desidera aggiungere questa opzione.minifyOptions
- Usiamo html-minifier-terser
mentre il pacchetto ufficiale utilizza html-minifier
per la minificazione. Abbiamo
deciso di cambiare il processore perché html-minifer
non è più mantenuto e ha alcuni problemi di sicurezza associati.Il nostro pacchetto utilizza i seguenti font di default:
Puoi cambiare i font utilizzando i seguenti metodi:
addFont(string $font, string $url)
- Aggiungi un font alla lista dei font.removeFont(string$font)
- Rimuovi un font dalla lista dei font.setFonts(array $fonts)
- Imposta la lista dei font. Dovresti fornire un array di font in questo
formato: ['font-name' => 'font-url']
.I commenti sono mantenuti di default. Se desideri rimuovere i commenti, puoi utilizzare il metodo removeComments()
.
Puoi anche annullare il removeComments()
chiamando il metodo keepComments()
.
Di default, il nostro pacchetto includerà qualsiasi mj-include
tags. Puoi modificare
questo comportamento chiamando il metodo ignoreIncludes(bool $ignore)
.
Il nostro pacchetto abbellirà l'HTML utilizzando js-beautify
con le seguenti
opzioni di default:
Mentre
js-beautify
utilizza snake_case per fornire opzioni, dovresti usare camelCase quando utilizzi il nostro pacchetto. Abbiamo fatto questa scelta per mantenere il nostro pacchetto coerente con il resto delle opzioni di configurazione. Il nostro pacchetto convertirà automaticamente le opzioni camelCase in snake_case.
Puoi sovrascrivere qualsiasi di queste opzioni fornendo una configurazione valida di js-beautify
utilizzando i seguenti metodi:
setBeautifyOptions(array $options)
- Imposta le opzioni di js-beautify
.addBeautifyOption(string $option, mixed $value)
- Aggiunge un'opzione di js-beautify
.removeBeautifyOption(string $option)
- Rimuove un'opzione di js-beautify
.Il nostro pacchetto minificherà l'HTML utilizzando html-minifier-terser
con
le seguenti opzioni di default:
Puoi sovrascrivere qualsiasi di queste opzioni fornendo una
configurazione valida di html-minifier-terser
utilizzando i seguenti
metodi:
setMinifyOptions(array $options)
- Imposta le opzioni di html-minifier-terser
.addMinifyOption(string $option, mixed $value)
- Aggiunge un'opzione di html-minifier-terser
.removeMinifyOption(string $option)
- Rimuove un'opzione di html-minifier-terser
.Il nostro pacchetto validerà il MJML utilizzando il livello di validazione soft
di default. Puoi cambiare questo utilizzando il
metodo validationLevel(ValidationLevel $validationLevel)
. I seguenti livelli di validazione sono disponibili:
strict
- Il tuo documento passa attraverso la validazione e non viene renderizzato se ha errorisoft
- Il tuo documento passa attraverso la validazione e viene renderizzato, anche se ha erroriskip
- Il tuo documento viene renderizzato senza passare attraverso la validazione.Il nostro pacchetto utilizzerà la directory .
di default. Puoi cambiare questo chiamando il metodo filePath(string $path)
.
Non forniamo alcuna opzione juice di default. Puoi aggiungere opzioni juice utilizzando i seguenti metodi:
setJuiceOptions(array $options)
- Imposta le opzioni juice.addJuiceOption(string $option, mixed $value)
- Aggiunge un'opzione juice.removeJuiceOption(string $option)
- Rimuove un'opzione juice.setJuicePreserveTags(array $tags)
- Imposta i tag di preservazione juice.addJuicePreserveTag(string $tag, mixed $value)
- Aggiunge un tag di preservazione juice.removeJuicePreserveTag(string $tag)
- Rimuove un tag di preservazione juice.# Linee Guida per il Supporto Grazie per aver scelto il nostro pacchetto open source! Prenditi un momento per dare un'occhiata a queste linee guida per il supporto. Ti aiuteranno a ottenere il massimo dal nostro progetto. ## Supporto Guidato dalla Comunità Il nostro progetto open source è alimentato dalla nostra fantastica comunità. Se hai domande o hai bisogno di assistenza, StackOverflow e altre risorse online sono le tue migliori opzioni. ## Bug e Prioritizzazione delle Funzionalità La realtà della gestione di un progetto open source significa che non possiamo affrontare immediatamente ogni bug segnalato o richiesta di funzionalità. Prioritizziamo i problemi nel seguente ordine: ### 1. Bug che Influenzano i Nostri Prodotti a Pagamento I bug che impattano i nostri prodotti a pagamento saranno sempre la nostra massima priorità. In alcuni casi, potremmo affrontare solo i bug che ci riguardano direttamente. ### 2. Pull Request della Comunità Se hai identificato un bug e hai una soluzione, invia una pull request. Dopo i problemi che influenzano i nostri prodotti, diamo la priorità più alta a queste correzioni guidate dalla comunità. Una volta esaminate e approvate, integreremo la tua soluzione e accrediteremo il tuo contributo. ### 3. Supporto Finanziario Per i problemi al di fuori delle categorie menzionate, puoi optare per finanziare la loro risoluzione. Ogni problema aperto è collegato a un modulo d'ordine dove puoi contribuire finanziariamente. Prioritizziamo questi problemi in base all'importo del finanziamento fornito. ### Contributi della Comunità L'open source prospera quando la sua comunità è attiva. Anche se non stai risolvendo bug, considera di contribuire attraverso miglioramenti del codice, aggiornamenti della documentazione, tutorial o assistendo gli altri nei canali della comunità. Incoraggiamo fortemente tutti, come comunità, a supportare il lavoro open source. _Per ribadire, DefectiveCode darà priorità ai bug in base a come influenzano i nostri prodotti a pagamento, alle pull request della comunità e al supporto finanziario ricevuto per i problemi._
Copyright © Defective Code, LLC. Tutti i diritti riservati
Con la presente si concede il permesso, gratuitamente, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizioni, inclusi senza limitazione i diritti di usare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di permettere alle persone a cui il Software è fornito di farlo, alle seguenti condizioni:
La suddetta nota di copyright e questa autorizzazione devono essere incluse in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I DETENTORI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, TORTO O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.