English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- Upgradevanje
- Uvod
- Instalacija
- Upotreba (Bez Laravel-a)
- Upotreba (Sa Laravel-om)
- Konfiguracija
- Smjernice za podršku
- Licenca - MIT Licenca
Upgradevanje
Ako nadograđujete iz prethodne verzije, molimo vas da pogledate Vodič za nadogradnju radi prekidnih promena i koraka migracije.
Uvod
MJML je jezik za označavanje posebno dizajniran za pojednostavljenje procesa kodiranja responzivnih e-pošta. Njegova semantička sintaksa osigurava lakoću i jednostavnost, dok njegova opsežna biblioteka standardnih komponenti ubrzava razvoj i smanjuje složenost vašeg koda za e-poštu. Open-source mašina MJML generiše HTML visoke kvalitete, responzivan koji se pridržava najboljih praksi. Ako ste iskusili frustracije u radu sa Outlook-om, ovaj paket je prilagođen za vas.
Naša implementacija MJML služi kao omotač za zvanični MJML API. Omogućava udobno prevodjenje MJML-u u HTML direktno unutar PHP-a, bez potrebe za NodeJS-om. Ovaj paket je idealan za PHP aplikacije koje žele da uključe MJML bez problema instalacije NodeJS-a i MJML CLI.
Primer
// Bez Laravel-a(new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Minificirani HTML(new MJML)->minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Sa Laravel-omMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Sa Laravel-om i minificiranim HTML-omMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Instalacija
-
Prvo dodajte sledeće u vaš
composer.jsonfajl kako biste naložili našem paketu da povuče ispravne binarne datoteke za vaš operativni sistem kada se naš paket instalira. Binarne datoteke će se preuzeti nakon što pokreneteinstall,update, ilidump-autoload.{"post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}MJML binarna datoteka će biti preuzeta sa našeg CDN-a i sačuvana u "bin" folderu ovog paketa tokom instalacije ili ažuriranja composer-a. Uverite se da imate potrebne binarne datoteke učitane za vaše lokalno i produkcijsko okruženje.
Po default-u,
allće povući sve binarne datoteke koje podržavamo. Preporučujemo da ovo ograničite na operativne i arhitekturalne sisteme koje trebate kako biste uštedeli na propusnosti i vremenima instalacije. Sledeće su dostupne binarne datoteke.Operativni sistem Arhitektura Composer Post Update Komanda Svi Svi DefectiveCode\MJML\PullBinary::allDarwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64Linux (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64Linux (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64Linux (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-muslLinux (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl -
Zatim, instalirajte PHP paket pokretanjem sledeće composer komande:
composer require defectivecode/mjml -
To je to! Ako koristite Laravel, naš paket će automatski biti instaliran koristeći Laravel-ovo otkrivanje paketa.
Upotreba (Bez Laravel-a)
Pogledajte upotrebu sa Laravel-om ispod ako koristite Laravel.
Renderovanje MJML-a
Da biste renderovali MJML, jednostavno prosledite svoj MJML string u render metodu:
use DefectiveCode\MJML\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>');
Validacija MJML-a
Da biste validirali MJML, jednostavno prosledite svoj MJML string u isValid metodu:
use DefectiveCode\MJML\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>');
Upotreba (Sa Laravel-om)
Renderovanje MJML-a
Da biste renderovali MJML, jednostavno prosledite svoj MJML string u render na MJML fasadi:
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>');
Validacija MJML-a
Da biste validirali MJML, jednostavno prosledite svoj MJML string u isValid metodu na MJML fasadi:
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>');
Konfiguracija
Možete objaviti konfiguracioni fajl koristeći sledeću komandu:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Ovo će kreirati mjml.php konfiguracioni fajl u vašem config folderu. Sve opcije navedene u konfiguracionom fajlu se prosleđuju config objektu kada koristite MJML fasadu.
Konfiguracija
Sve konfiguracione opcije mogu se postaviti pozivanjem sledećih metoda direktno na MJML objektu.
use DefectiveCode\MJML\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>' );
Naš paket prati istu konfiguraciju kao zvanični MJML paket osim za sledeće:
preprocessors- Ova opcija nije dostupna. Molimo otvorite pull request ako biste želeli da dodate ovu opciju.minifyOptions- Držimo minifikaciju u PHP-u radi kompatibilnosti izlaza. Minifikator uklanja komentare (osim Outlook-ovih uslovnih komentara), sakuplja praznine i uklanja praznine između oznaka.sanitizeStyles,templateSyntax, iallowMixedSyntax- Ove MJML 5 opcije se primenjuju na matični put minifikacije htmlnano/cssnano. One se ne koriste u PHP minifikatoru ovog paketa.
Fontovi
Naš paket koristi sledeće fontove prema zadatku:
- Open Sans: 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,700
- Droid Sans: 'https://fonts.googleapis.com/css?family=Droid+Sans:300,400,500,700
- Lato: https://fonts.googleapis.com/css?family=Lato:300,400,500,700
- Roboto: https://fonts.googleapis.com/css?family=Roboto:300,400,500,700
- Ubuntu: https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700
Možete promeniti fontove koristeći sledeće metode:
addFont(string $font, string $url)- Dodajte font na listu fontova.removeFont(string $font)- Uklonite font sa liste fontova.setFonts(array $fonts)- Postavite listu fontova. Trebalo bi da pružite niz fontova u ovom formatu:['font-name' => 'font-url'].
Komentari
Komentari se čuvaju prema zadatku. Ako želite da uklonite komentare, možete koristiti metodu removeComments().
Možete takođe ponovo aktivirati removeComments() tako što ćete pozvati metodu keepComments().
Ignoriši Uključivanja
Po default-u, naš paket ignoriše mj-include oznake. Ovo odgovara bezbednijem default-u MJML 5. Možete omogućiti uključivanja pozivajući ignoreIncludes(false).
Kada omogućite uključivanja, koristite filePath(string $path) kao osnovni direktorijum i includePath(string|array|null $path) da omogućite dodatne direktorijume za uključivanje.
Beautify
Naš paket će urediti HTML koristeći js-beautify. MJML 5.2 takođe koristi js-beautify interno, ali ovaj paket drži poboljšanje na nivou omotača tako da prilagođeni PHP beautifyOptions nastave da rade. Zadatak optima su:
- indentSize: 2
- wrapAttributesIndentSize: 2
- maxPreserveNewline: 0
- preserveNewlines: false
Dok
js-beautifykoristi snake_case za pružanje opcija, trebate koristiti camelCase kada koristite naš paket. Ove opcije automatski se konvertuju iz camelCase u snake_case.
Možete nadjačati bilo koju od ovih opcija pružanjem validne js-beautify konfiguracije koristeći sledeće metode:
setBeautifyOptions(array $options)- Postavitejs-beautifyopcije.addBeautifyOption(string $option, mixed $value)- Dodajejs-beautifyopciju.removeBeautifyOption(string $option)- Uklanjajs-beautifyopciju.
Minify
Naš paket će minifikovati HTML izlaz kada je omogućeno. Minifikacija izvršava sledeće:
- Uklanja HTML komentare (preservira Outlook-ove uslovne komentare kao
<!--[if mso]>) - Skuplja više praznih karaktera u jedinstvene razmake
- Uklanja praznine između HTML oznaka
Možete omogućiti ili onemogućiti minifikaciju pozivajući metodu minify(bool $minify).
Zašto minifikacija bazirana na PHP-u? MJML 5 više ne koristi stari ranjivi
html-minifierpaket. Ovaj paket i dalje drži minifikaciju u PHP-u kako bi očuvala izlazno ponašanje uvedeno u verziji 2.x. Ako vam trebaju MJML 5-ove izvorne htmlnano/cssnano opcije za minifikaciju, otvorite problem sa potrebnim oblikom opcije.
Nivo Validacije
Naš paket će validirati MJML koristeći nivo validacije soft prema zadatku. Možete promeniti ovo koristeći metodu validationLevel(ValidationLevel $validationLevel). Sledeći nivoi validacije su dostupni:
strict- Vaš dokument prolazi kroz validaciju i nije renderovan ako ima bilo kakvu greškusoft- Vaš dokument prolazi kroz validaciju i renderuje se, čak i ako ima greškeskip- Vaš dokument se renderuje bez prolaska kroz validaciju.
Putanja Fajla
Naš paket će koristite direktorij . kao default. Možete promeniti ovo pozivajući metodu filePath(string $path).
MJML 5 tretira filePath kao osnovu sandboxes za uključivanja. Ako su uključivanja omogućena, putanje izvan filePath su uskraćene osim ako nisu izričito dozvoljene sa includePath(string|array|null $path).
Juice
Ne pružamo nikakve juice opcije prema zadatku. Možete dodati juice opcije koristeći sledeće metode:
setJuiceOptions(array $options)- Postavite juice opcije.addJuiceOption(string $option, mixed $value)- Dodaje juice opciju.removeJuiceOption(string $option)- Uklanja juice opciju.setJuicePreserveTags(array $tags)- Postavite juice očuvane oznake.addJuicePreserveTag(string $tag, mixed $value)- Dodaje juice očuvanu oznaku.removeJuicePreserveTag(string $tag)- Uklanja juice očuvanu oznaku.
Smjernice za podršku
Hvala što ste odabrali naš paket otvorenog koda! Molimo vas da odvojite trenutak da pregledate ove smjernice za podršku. Pomoći će vam da izvučete maksimum iz našeg projekta.
Podrška vođena zajednicom
Naš projekat otvorenog koda pokreće naša sjajna zajednica. Ako imate pitanja ili trebate pomoć, StackOverflow i ostali online resursi su najbolji izbor.
Greške i prioritizacija funkcionalnosti
Stvarnost upravljanja projektom otvorenog koda je da ne možemo odmah riješiti svaku prijavljenu grešku ili zahtjev za funkcionalnošću. Prioritizujemo probleme u sledećem redu:
1. Greške koje utiču na naše plaćene proizvode
Greške koje utiču na naše plaćene proizvode uvijek će biti naš najveći prioritet. U nekim slučajevima, možda ćemo se fokusirati samo na greške koje direktno utiču na nas.
2. Pull zahtjevi zajednice
Ako ste identificirali grešku i imate rešenje, molimo pošaljite pull zahtjev. Nakon problema koji utiču na naše proizvode, sledeći najveći prioritet daju se ovim ispravkama koje pokreće zajednica. Kada se pregledaju i odobre, spojit ćemo vaše rešenje i priznati vaš doprinos.
3. Finansijska podrška
Za probleme izvan pomenutih kategorija, možete se odlučiti da finansijski podržite njihovo rješavanje. Svaki otvoreni problem je povezan s narudžbenicom na kojoj možete financijski doprinijeti. Prioritizujemo ove probleme na osnovu iznosa finansiranja koji je pružen.
Doprinosi zajednice
Otvoreni kod napreduje kada je njegova zajednica aktivna. Čak i ako ne ispravljate greške, razmislite o doprinosu kroz poboljšanja koda, ažuriranja dokumentacije, tutorijale ili pomažući drugima u zajedničkim kanalima. Veoma ohrabrujemo sve, kao zajednicu, da pomognu u podršci radu otvorenog koda.
Ponovo naglašavamo, DefectiveCode će prioritetizovati greške na osnovu njihovog uticaja na naše plaćene proizvode, pull zahtjeve zajednice i finansijsku podršku primljenu za probleme.
Licenca - MIT Licenca
Autorska prava © Defective Code, LLC. Sva prava zadržana
Ovim se dozvoljava, bez naplate, svakoj osobi koja dobije kopiju ovog softvera i pripadajućeg dokumentacionog materijala (u daljem tekstu "Softver"), da se bavi Softverom bez ograničenja, uključujući, ali ne ograničavajući se na prava da koristi, kopira, modifikuje, spaja, objavljuje, distribuira, sublicencira i/ili prodaje kopije Softvera, te da omogući osobama kojima je Softver dostavljen da učine tako, pod sledećim uslovima:
Gore navedena autorska prava i ova dozvola moraju biti uključeni u sve kopije ili bitne delove Softvera.
SOFTVER SE DOSTAVLJA "KAKAV JESTE", BEZ GARANCIJE BILO KAKVE VRSTE, IZRIČITE ILI IMPLICIRANE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA GARANCIJE PRODAJE, PRIKLADNOSTI ZA ODREĐENU NAMENU I NEPOŠTOVANJE PRAVA. U NIKAKVOM SLUČAJU AUTORI ILI NOSIOCI AUTORSKIH PRAVA NEĆE BITI ODGOVORNI ZA BILO KAKVE POTRAŽIVANJA, ŠTETE ILI DRUGE OBAVEZE, BEZ OBZIRA NA TO DA LI JE U PITANJU TUŽBA ZBOG UGOVORA, DELIKTA ILI DRUGIH RAZLOGA, PROIZAŠLE IZ, VAN ILI U VEZI SA SOFTVEROM ILI KORIŠĆENJEM ILI DRUGIM TRANSAKCIJAMA U VEZI SA SOFTVEROM.