Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

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 Laravelem
MJML::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 HTML
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

Instalace

  1. Nejprve přidejte následující do vašeho composer.json souboru, 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, update nebo dump-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í all stá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::all
    Darwin (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    Darwin (MacOS) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    Linux (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    Linux (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64
    Linux (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-musl
    Linux (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl
  2. Dále nainstalujte PHP balíček spuštěním následujícího příkazu composer:

    composer require defectivecode/mjml
  3. 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:

Písma

Náš balíček výchozí používá následující písma:

Můžete změnit písma pomocí následujících metod:

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:

Zatímco js-beautify použí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:

Minifikace

Náš balíček zminifikuje HTML výstup, když je to povoleno. Minifikace provádí následující:

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:

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:

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.