English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- Upgrade
- Úvod
- Instalace
- Použití (Bez Laravelu)
- Použití (S Laravel)
- Konfigurace
- Smjernice za podršku
- Licenca - MIT Licenca
Upgrade
Jestliže upgradujete z předchozí verze, prosím, podívejte se na Průvodce upgradem pro rozbité změny a migrační kroky.
Úvod
MJML je značkovací jazyk navržený speciálně pro zjednodušení procesu kódování responzivních e-mailů. Jeho sémantická syntaxe zajišťuje snadnost a jednoduchost, zatímco jeho rozsáhlá knihovna standardních komponentů urychluje vývoj a snižuje složitost vašeho kódového základu e-mailu. Otevřený engine MJML generuje vysoce kvalitní, responzivní HTML, které se drží nejlepších praktik. Pokud jste zažili frustrace z práce s Outlookem, tento balíček je přizpůsoben pro vás.
Naše implementace MJML slouží jako obal pro oficiální API MJML. Umožňuje pohodlnou kompilaci MJML na HTML přímo v PHP, bez potřeby NodeJS. Tento balíček je ideální pro PHP aplikace, které chtějí začlenit MJML bez potíží s instalací NodeJS a MJML CLI.
Příklad
// Bez Laravelu(new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Zmíněné 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>'); // S LaravelemMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // S Laravelem a zmenšeným HTMLMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Instalace
-
Nejprve přidejte následující do vašeho
composer.jsonsouboru, abyste našemu balíčku nařídili stáhnout správné binární soubory pro váš operační systém, když náš balíček bude nainstalován. Binární soubory se stáhnou po spuštěníinstall,updatenebodump-autoload.{"post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}Binární soubor MJML bude získán z našeho CDN a uložen do složky "bin" tohoto balíčku během instalace nebo aktualizace composerem. Ujistěte se, že máte potřebné binární soubory načtené pro vaše místní a produkční prostředí.
Ve výchozím nastavení
allstáhne všechny binární soubory, které podporujeme. Doporučujeme tento výběr zúžit na operační a architektonické systémy, které potřebujete, abyste ušetřili šířku pásma a čas potřebný k instalaci. Následující jsou dostupné binární soubory.Operační systém Architektura Příkaz pro Composer Post Update Všechno Všechno 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 -
Dále nainstalujte PHP balíček spuštěním následujícího příkazu composer:
composer require defectivecode/mjml -
To je vše! Při použití Laravelu se náš balíček automaticky nainstaluje pomocí objevování balíčků Laravelu.
Použití (Bez Laravelu)
Pokud používáte Laravel, podívejte se na použití s Laravel níže.
Rendering MJML
Pro vykreslení MJML jednoduše předáte svůj MJML řetězec do metody 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>');
Validace MJML
Pro validaci MJML jednoduše předáte svůj MJML řetězec do metody 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>');
Použití (S Laravel)
Rendering MJML
Pro vykreslení MJML jednoduše předáte svůj MJML řetězec do metody render na MJML facádě:
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>');
Validace MJML
Pro validaci MJML jednoduše předáte svůj MJML řetězec do metody isValid na MJML facádě:
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>');
Konfigurace
Můžete publikovat konfigurační soubor pomocí následujícího příkazu:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
To vytvoří konfigurační soubor mjml.php ve vaší složce config. Všechny možnosti uvedené v konfiguračním souboru jsou předávány objektu config, když používáte MJML facádu.
Konfigurace
Všechny konfigurační možnosti lze nastavit voláním následujících metod přímo na objektu 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>' );
Náš balíček dodržuje stejné nastavení jako oficiální balíček MJML s výjimkou následujících:
preprocessors- Tato možnost není k dispozici. Prosím, otevřete pull request, pokud byste chtěli přidat tuto možnost.minifyOptions- Minifikaci udržujeme v PHP pro kompatibilitu výstupu. Minifikátor odstraňuje komentáře (kromě podmínek pro Outlook), collapse whitespace a odstraňuje whitespace mezi tagy.sanitizeStyles,templateSyntaxaallowMixedSyntax- Tyto možnosti MJML 5 se vztahují na MJML's nativní htmlnano/cssnano minifikační cestu. Nejsou používány tímto PHP minifikátorem balíčku.
Písma
Náš balíček výchozí používá následující písma:
- 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
Můžete změnit písma pomocí následujících metod:
addFont(string $font, string $url)- Přidejte písmo do seznamu písem.removeFont(string $font)- Odstraňte písmo ze seznamu písem.setFonts(array $fonts)- Nastavte seznam písem. Měli byste poskytnout pole písem v tomto formátu:['font-name' => 'font-url'].
Komentáře
Komentáře jsou standardně uchovávány. Pokud si přejete odstranit komentáře, můžete použít metodu removeComments().
Můžete také zvrátit removeComments() voláním metody keepComments().
Ignorovat zahrnutí
Ve výchozím nastavení náš balíček ignoruje mj-include tagy. To odpovídá bezpečnějšímu výchozímu nastavení MJML 5. Můžete povolit zahrnutí voláním ignoreIncludes(false).
Při povolení zahrnutí použijte filePath(string $path) jako základní adresář a includePath(string|array|null $path) pro povolení dalších adresářů pro zahrnutí.
Zkrášlení
Náš balíček zkrášlí HTML pomocí js-beautify. MJML 5.2 také používá js-beautify interně, ale tento balíček uchovává zkrášlení na úrovni wrapperu, takže vlastní PHP beautifyOptions pokračují v práci. Výchozí možnosti jsou:
- indentSize: 2
- wrapAttributesIndentSize: 2
- maxPreserveNewline: 0
- preserveNewlines: false
Zatímco
js-beautifypoužívá snake_case pro poskytování možností, měli byste používat camelCase při používání našeho balíčku. Tuto volbu jsme učinili, abychom náš balíček udrželi konzistentní s ostatními konfiguračními možnostmi. Náš balíček automaticky převede možnosti camelCase na snake_case.
Můžete přepsat libovolné z těchto možností poskytnutím platné konfigurace js-beautify pomocí následujících metod:
setBeautifyOptions(array $options)- Nastavte možnostijs-beautify.addBeautifyOption(string $option, mixed $value)- Přidá možnostjs-beautify.removeBeautifyOption(string $option)- Odstraní možnostjs-beautify.
Minifikace
Náš balíček zminifikuje HTML výstup, když je to povoleno. Minifikace provádí následující:
- Odstraňuje HTML komentáře (uchovává podmíněné komentáře Outlooku jako
<!--[if mso]>) - Skládá více znaků prázdného místa do jednotlivých mezer
- Odstraňuje prázdné místo mezi HTML tagy
Můžete povolit nebo zakázat minifikaci voláním metody minify(bool $minify).
Proč PHP-založená minifikace? MJML 5 již nepoužívá starý zranitelný balíček
html-minifier. Tento balíček stále udržuje minifikaci v PHP, aby zachoval chování výstupu zavedené v verzi 2.x. Pokud potřebujete nativní možnosti minifikace htmlnano/cssnano pro MJML 5, otevřete problém s požadovaným tvarem možností.
Úroveň validace
Náš balíček bude validovat MJML pomocí výchozí úrovně soft. Tuto úroveň můžete změnit pomocí metody validationLevel(ValidationLevel $validationLevel). Následující úrovně validace jsou k dispozici:
strict- Váš dokument prochází validací a není vykreslen, pokud má jakoukoli chybusoft- Váš dokument prochází validací a je vykreslen, i když má chybyskip- Váš dokument je vykreslen bez procházení validací.
Cesta k souboru
Náš balíček bude ve výchozím nastavení používat adresář .. Můžete tuto cestu změnit voláním metody filePath(string $path).
MJML 5 zpracovává filePath jako základnu pro sandbox zahrnutí. Pokud jsou zahrnutí povolena, cesty mimo filePath jsou zamítnuty, pokud nejsou výslovně povoleny s includePath(string|array|null $path).
Juice
Nabídka žádné juice options ve výchozím nastavení. Můžete přidat juice options pomocí následujících metod:
setJuiceOptions(array $options)- Nastavte juice options.addJuiceOption(string $option, mixed $value)- Přidá juice option.removeJuiceOption(string $option)- Odstraní juice option.setJuicePreserveTags(array $tags)- Nastavte zachované značky juice.addJuicePreserveTag(string $tag, mixed $value)- Přidá zachovanou značku juice.removeJuicePreserveTag(string $tag)- Odstraní zachovanou značku juice.
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.