English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Questo documento è stato tradotto automaticamente. Se ci sono errori di traduzione, per favore apri
una pull request sul
progetto e aggiungi il file tradotto a docs/{Codice ISO 639-1}.md
.
MJML è un linguaggio di markup appositamente progettato per semplificare il processo di codifica di email responsive. La sua sintassi semantica garantisce facilità e semplicità, mentre la sua estesa libreria di componenti standard accelera lo sviluppo e riduce la complessità del codice delle tue email. Il motore open-source di MJML genera HTML responsive di alta qualità che aderisce alle migliori pratiche. Se hai avuto frustrazioni nel 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 la comoda compilazione di MJML in HTML direttamente in 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>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'); // HTML minificato(new MJML)->minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>'); // Con LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</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>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>');
Aggiungi prima quanto segue 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 il tuo ambiente locale che per quello di produzione.
Per impostazione predefinita, all
scaricherà tutti i binari che supportiamo. Consigliamo di limitare questo all'operating system e all'architettura di cui hai bisogno per risparmiare larghezza di banda e tempi di installazione. Di seguito sono elencati i binari disponibili.
Sistema Operativo | Architettura | Comando Composer Post Update |
---|---|---|
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
Ecco fatto! Se stai usando Laravel, il nostro pacchetto verrà installato automaticamente utilizzando la scoperta dei pacchetti di Laravel.
Vedi l'utilizzo con Laravel di seguito se stai usando Laravel.
Per renderizzare MJML, passa semplicemente la tua stringa MJML al metodo render
:
use DefectiveCode\MJML; $html = (new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>');
Per validare MJML, passa semplicemente la tua stringa MJML al metodo isValid
:
use DefectiveCode\MJML; $isValid = (new MJML)->isValid( '<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>');
Per rendere MJML, basta passare la stringa MJML al metodo render
sulla facciata MJML:
use DefectiveCode\MJML\Facades\MJML; $html = MJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>');
Per validare MJML, basta passare la 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>Ciao Mondo</mj-text></mj-column></mj-section></mj-body></mjml>');
È possibile 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 cartella config
. Tutte le opzioni elencate nel file di configurazione vengono passate all'oggetto config
quando si utilizza la facciata MJML.
Tutte le opzioni di configurazione possono essere impostate chiamando direttamente i seguenti metodi sull'oggetto 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>' );
Il nostro pacchetto segue la stessa configurazione del pacchetto ufficiale MJML, ad eccezione di quanto segue:
preprocessors
- Questa opzione non è disponibile. Si prega di aprire una pull request se si desidera aggiungere questa opzione.minifyOptions
- Utilizziamo html-minifier-terser
, mentre il pacchetto ufficiale utilizza html-minifier
per la minificazione. Abbiamo deciso di passare al processore perché html-minifer
non è più mantenuto e presenta alcuni problemi di sicurezza associati.Il nostro pacchetto utilizza i seguenti caratteri predefiniti:
È possibile modificare i caratteri utilizzando i seguenti metodi:
addFont(string $font, string $url)
- Aggiunge un carattere all'elenco dei caratteri.removeFont(string$font)
- Rimuove un carattere dall'elenco dei caratteri.setFonts(array $fonts)
- Imposta l'elenco dei caratteri. È necessario fornire un array di caratteri in questo formato: ['nome-carattere' => 'url-carattere']
.I commenti vengono mantenuti per impostazione predefinita. Se si desidera rimuovere i commenti, è possibile utilizzare il metodo removeComments()
.
È anche possibile annullare la chiamata a removeComments()
chiamando il metodo keepComments()
.
Per impostazione predefinita, il nostro pacchetto includerà qualsiasi tag mj-include
. È possibile regolare questo comportamento chiamando il metodo ignoreIncludes(bool $ignore)
.
Il nostro pacchetto formatta l'HTML utilizzando js-beautify
con le seguenti opzioni predefinite:
Mentre
js-beautify
utilizza snake_case per fornire le opzioni, è necessario utilizzare camelCase quando si utilizza 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.
È possibile sovrascrivere una qualsiasi di queste opzioni fornendo una configurazione js-beautify
valida 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 ridurrà al minimo l'HTML utilizzando html-minifier-terser
con le seguenti opzioni predefinite:
È possibile sovrascrivere una 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 convalida l'MJML utilizzando il livello di convalida soft
per impostazione predefinita. È possibile modificare ciò utilizzando il metodo validationLevel(ValidationLevel $validationLevel)
. Sono disponibili i seguenti livelli di convalida:
strict
- Il documento viene convalidato e non viene visualizzato se presenta errori.soft
- Il documento viene convalidato e viene visualizzato, anche se presenta errori.skip
- Il documento viene visualizzato senza essere convalidato.Il nostro pacchetto utilizzerà la directory .
per impostazione predefinita. È possibile modificare ciò chiamando il metodo filePath(string $path)
.
Non forniamo alcuna opzione juice per impostazione predefinita. È possibile aggiungere opzioni di juice utilizzando i seguenti metodi:
setJuiceOptions(array $options)
- Imposta le opzioni di juice.addJuiceOption(string $option, mixed $value)
- Aggiunge un'opzione di juice.removeJuiceOption(string $option)
- Rimuove un'opzione di juice.setJuicePreserveTags(array $tags)
- Imposta i tag di juice da preservare.addJuicePreserveTag(string $tag, mixed $value)
- Aggiunge un tag di juice da preservare.removeJuicePreserveTag(string $tag)
- Rimuove un tag di juice da preservare.Grazie per aver scelto il nostro pacchetto open source! Ti preghiamo di dedicare un momento per leggere queste linee guida di supporto. Ti aiuteranno a ottenere il massimo dal nostro progetto.
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.
La realtà della gestione di un progetto open source significa che non possiamo affrontare immediatamente ogni segnalazione di bug o richiesta di funzionalità. Priorizziamo i problemi nel seguente ordine:
I bug che influiscono sui nostri prodotti a pagamento saranno sempre la nostra massima priorità. In alcuni casi, potremmo affrontare solo i bug che ci riguardano direttamente.
Se hai individuato un bug e hai una soluzione, ti preghiamo di inviare una richiesta di pull. Dopo i problemi che influiscono sui nostri prodotti, diamo la priorità successiva a queste correzioni basate sulla comunità. Una volta esaminata e approvata, uniremo la tua soluzione e accrediteremo il tuo contributo.
Per i problemi al di fuori delle categorie menzionate, puoi scegliere di finanziare la loro risoluzione. Ogni problema aperto è collegato a un modulo d'ordine in cui puoi contribuire finanziariamente. Priorizziamo questi problemi in base all'importo del finanziamento fornito.
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 vivamente tutti, come comunità, ad aiutare il lavoro open source.
Per ribadire, DefectiveCode darà priorità ai bug in base a come influiscono sui nostri prodotti a pagamento, alle richieste di pull della comunità e al supporto finanziario ricevuto per i problemi.
Copyright © Defective Code, LLC. Tutti i diritti riservati
È qui concesso, gratuitamente, a chiunque ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), di trattare il Software senza restrizioni, compresi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di farlo, a condizione che siano rispettate le seguenti condizioni:
Il presente avviso di copyright e il presente avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSO, MA NON LIMITATO A, GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER ALCUN RECLAMO, DANNO O ALTRO TIPO DI RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, TORTO O ALTRO, DERIVANTE DA, CONNESSO A O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRO UTILIZZO DEL SOFTWARE.